新手学习python第九天——加速学习

大家周末好,今天是周六北京时间07:50达到实验室,刚刚复习完昨天的内容,今天感冒有所好转,下午课题组有聚餐还是开心的,但今天的学习内容也不要落下。

                                         ————08:24————开始学习————

1.访问类属性

语法结构:print(Student.native_place)  #访问类属性

class Student:native_place='吉林'#方法def __init__(self,name,age):self.name=nameself.age=agedef eat(self):print('学生在吃饭')
def drink():print('喝水')@staticmethoddef method():print('我使用了statticmethod进行修饰,所以我是静态方法')@classmethoddef cm(cls):print('我是类方法,因为我使用了classmethod进行修饰')
stu1=Student('张三',20)
stu1.eat()
print(stu1.name)
print(stu1.age)
Student.eat(stu1)
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_place)
print(stu2.native_place)
Student.native_place='天津'
print(stu1.native_place)
print(stu2.native_place)

    解释一下红色部分结果为什么可以更改,因为stu1里和stu2里Student类的对象都有一个类指针,分别指向Student中类对象(native_place='吉林‘) 所以当吉林更改为天津的时候,这二者的访问类属性的时候都是天津。因为这个值是被他俩共享的。

1.1 静态方法的使用方式

类属性:类中方法之外的变量,被该类的所有对象所共享

类方法:使用@classmethod修饰的方法,使用类名直接访问的方法

静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法

结构:Student.method()

类名+.+method()

1.2类方法的使用方式

语法结构:类名+.+cm()

Student.cm()

类方法和静态方法程序如图所示  

都是直接调用类名+.+这些方法

1.3 动态绑定属性和方法

class Student:def __init__(self,name,age):self.name=name    将局部变量的name赋给实例变量self.nameself.age=agedef eat(self):print(self.name+'在吃饭')   
stu1=Student('张三',20)
stu2=Student('李四',30)

Student实例对象有stu1和stu2,这两个实例对象里面都有指针指向类对象Student 一个Student类可以创建N多个实例对象,每个实例对象的属性值不同。

但是我想让stu1再多增加一个属性怎么做? 这时就用到了动态绑定属性方法。

stu1=Student('张三',20)
stu2=Student('李四',30)
stu2.gender='女'    你想要在该实例下多绑定的一个属性,用实例对象名+.+自定义的名字=所属类型
print(stu1.name,stu1.age)
print(stu2.name,stu2.age,stu2.gender)  直接写上就行了

你这个里面多增加的gender属性,只能被stu2使用,stu1使用不了,那么什么样的属性是大家共有的呢?在init初始化那里所传入参数。

那么也就是在init那里的量是所共有的。

1.3.2 动态绑定方法2

def show():print('定义在类之外的,称函数')
stu1.show=show()
stu1.show()

stu2.show() 这样就会报错,因为没有绑定stu2,只绑定了stu1
总结:类属性、类方法、静态方法都是使用类名+.使用的
而实例方法是使用对象名+.使用的

 

2.面向对象的三大特征:

2.1. 封装

class Car:def __init__(self,brand):    #brand就是一个实例属性self.brand=branddef start():print('汽车已启动')      #下面的这些程序都被包裹在里面了

在程序的左面有一个 减号 一点击就会被包裹起来成图片中所示

2.2.2简单例子

这里我来举例一下,顺便再对类对象进行一个复习和巩固

class Car:               #定义了一个名字叫做Card的类对象def __init__(self,brand):     初始化设置一个参数 brandself.brand=brand          局部变量赋给self.branddef start(self):              类方法print('汽车已启动')car=Car('梅赛德斯奔驰')         例子:将类对象给了实例对象car Car这个类里面的那个值是上面的                 参数值 为brand  
car.start()                    让实例对象调用上述中的方法 start()
print(car.brand)               把里面的参数打印出来。同时也是实例对象在调用类Car里面的参数值 

如果在类里面定义的参数,不想在外面显示出来的话,要在该参数前面加两个__

class Student:def __init__(self,name,age):self.name=nameself.__age=age    变成私有属性def show(self):print(self.name,self.__age)  内部方法可以访问私有属性  要记得统一

可以知道外部访问是不允许的 已经变私密属性了。

但为什么显示出来了?因为show是内部的,可以显示出来,若是在外面就不可以了。

这个叫不希望被使用的,但是可不可以被使用呢?可以被使用的

先这样...再那样...最后再这样...

print(dir(stu))

发现了age但是是Student的age 所以复制一下

print(stu._Student__age)

语法结构为:_类名_+实例属性

这就是封装 ,其实也可以访问,但是不建议访问这个操作

2.3继承

2.3.1语法格式:class子类类名(父类1,父类2...):

pass

注意:如果一个类没有继承任何类,默认继承object

python支持多继承,定义子类时,必须在构造函数中调用父类的构造函数

————  14:45——

准备去跟导师与实验室聚餐了,晚上如果回来很早就继续把剩下的抓紧学完,不然明天压力又大了起来。

先发布下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1539249.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud微服务实现服务降级的最佳实践

Spring Cloud是一种用于快速构建分布式系统的框架,它提供了许多有用的功能,其中包括服务降级。 服务降级是一种保护机制,它可以在面临高并发或故障时保持服务的稳定性。当系统资源不足或服务出现故障时,服务降级可以通过关闭一些功…

为什么AI在广告投放上受追捧,创意上却饱受非议

AI代表着人类科技的未来,这已经是营销圈的共识,从网络上各个机构的解读来看,AI的奇点似乎正在临近。 AI人工智能对人类社会的震撼有两次标志性的事件:一次是AlphaGo战胜李世石, 我相信大多数人了解人工智能的开始&…

为什么是华为最先做出三折叠?这些黑科技硬核门槛缺一不可

一款起售价19999的手机,预约人数竟达到了600万,全球首款三折叠手机Mate XT到底有什么魔力,可以做到还未上市就引爆市场?看完这篇文章,你就知道何谓“科技新物种”。 9月7日12:08,华为Mate XT非凡大师开启预…

技术贴:电脑端企业微信双开教程!

软件双开的实现,很多小伙伴用的都是修改注册表的方式,这里我再介绍一个办法: 电脑桌面先新建一个 txt 文档,将下方命令全部复制,粘贴在 txt 文件中。 reg add HKEY_CURRENT_USER\Software\Tencent\WXWork /v multi_i…

C++第十二节课 模板初阶和string引入

一、函数模板 我们不需要写具体的函数&#xff0c;而是写这个函数的模板&#xff0c;编译器会根据模板生成对应的函数&#xff1b; template<typename T> template<class T> 两者的作用是等效的&#xff01; 用模板完成的功能有时候也叫泛型编程&#xff1b; …

【分立元件】案例:新人加了个TVS管为什么可能导致系统不能正常工作

因为最近在带多个新人,让其设计原理图和PCB总会发现各种电路问题点。比如TVS管接法问题。 TVS是一种限压型的过压保护器,它将过高的电压钳制至一个安全范围,藉以保护后面的电路,有着比其它保护元件更快的反应时间,这使TVS可用在防护lighting、switching、ESD等快速破坏性瞬…

JAVA虚拟机----JVM

(一)认识JVM JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java虚拟机。 虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统。 常⻅的虚拟机&#xff1a;JVM、VMwave、Virtual Box。 &#xff08;二&#xff09;JVM运…

Linux进阶命令-重定向

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 经过上一章Linux日志的讲解&#xff0c;我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令&am…

5、PointNeXt

5、PointNeXt PointNeXt论文&#xff1a;PointNeXt 关于PointNeXt实际上仅仅是在PointNet的基础上做了一些改进&#xff0c;从它的全称就可以看出&#xff0c;Revisiting PointNet with Improved Training and Scaling Strategies&#xff0c;在PointNet的基础上&#xff0c;引…

前端常用的主流框架有哪些

前端开发中&#xff0c;有几个主流框架非常受欢迎&#xff0c;它们为开发者提供了丰富的功能和高效的开发体验。以下是一些当前最常用的前端主流框架&#xff1a; React&#xff1a; React 是由 Facebook 开发的一个用于构建用户界面的 JavaScript 库。它鼓励使用组件化的开发模…

O1-preview:智能预测与预取驱动的性能优化处理器设计OPEN AI

# 创作不易&#xff0c;您的打赏、关注、点赞、收藏和转发是我坚持下去的动力&#xff01; O1-preview 是一种用于性能优化的处理器设计原理&#xff0c;主要通过智能预测和数据预取来提升处理器的执行效率。以下是对 O1-preview 原理的详细介绍&#xff0c;以及它相对于以往的…

微波无源器件 功分器 4 一种用于天线阵列的紧凑宽带四路双极化波导功分器

摘要&#xff1a; 一种新型紧凑和高效率&#xff0c;在一个同相2x4方案(四路)显示双极化的功分器的设计和仿真被提出了&#xff0c;两个基本的正交模式TE10和TE01在四个方波导处同相输出通过使用四个3端口个四个E面和两个H面功分结构。此功分末端接了两个商用波导(WR75)端口&am…

插入排序详解

思路 把后面的值&#xff08;temp&#xff09;与前面的值&#xff08;end&#xff09;做对比&#xff0c; 若temp位置的值小于end位置的值&#xff0c; end位置的值给end1位置。。 语言难以描述&#xff0c;请大家看下图。 代码 void InsertSort(int *arr, int n) {/*为了…

django开发流程

一、官方网站&#xff1a; Django documentation | Django documentation | Djangohttps://docs.djangoproject.com/en/5.1/ 1.安装 django : pip install django 2. django项目的配置文件 (settings.py) BASE_DIR 项目根路径 DEBUG 调试模式 INSTALLE…

旷视轻量化网络shufflenet算法解读

目录 预备知识 1. 回顾MobileNet V1的核心思想---深度可分离卷积 2.ShuffleNet主要有两个创新点 2.1 分组卷积与11分组卷积 2.2 channel Shuffle&#xff08;通道重排&#xff09; 2.3 通道重排过程 3. ShuffleNet网络结构 3.1 ShuffleNet unit 3.2 不同分组数的Shu…

AlexNet项目图片分类通用模型代码

目录 一&#xff1a;建立AlexNet模型&#xff08;在model文件中写&#xff09; 1.构造5层卷积层 2.构造3层神经网络层 3.forward函数 4.模型最终代码 二&#xff1a;训练数据&#xff08;在train中写&#xff09; 1.读出数据 2.训练 3. 测试模型更新参数 4.完整的训练…

问题——IMX6UL的uboot无法ping主机或Ubuntu

主要描述可能的方向&#xff0c;不涉具体过程&#xff0c;详细操作可以查阅网上相关教程 跟随正点原子教程测试以太网端口时&#xff0c;即便按照步骤多次尝试也无法ping通&#xff0c;后补充了些许网络工程基础知识解决了这个问题。 uboot无法ping主机或Ubuntu有多种可能&…

Redis集群知识及实战

1. 为什么使用集群 在哨兵模式中&#xff0c;仍然只有一个Master节点。当并发写请求较大时&#xff0c;哨兵模式并不能缓解写压力。我们知道只有主节点才具有写能力&#xff0c;那如果在一个集群中&#xff0c;能够配置多个主节点&#xff0c;是不是就可以缓解写压力了呢&…

总结拓展十:SAP开发计划(下)

第一节 接口功能开发说明书设计 1、软件系统接口作用 答&#xff1a;系统接口&#xff0c;是实现系统间数据传输的功能。 2、软件系统接口特点 1&#xff09;采用Web Service技术作为平台&#xff0c;有众多的数据传输协议标准&#xff0c;通过API与外界交流数据。 2&…

Vscode搭配latex简易教程

1. 找镜像网站下载texlive的iso文件 清华源镜像 下载之后直接打开iso文件&#xff0c;打开install-tl-windows.bat文件&#xff0c;进行安装即可&#xff0c;安装大概30分钟左右 2. VScode端配置 2.1 下载这三个插件 2.2 打开设置 2.3 追加内容到配置json文件当中 // Latex…