python面向对象的self是什么? | 您所在的位置:网站首页 › burying什么意思 › python面向对象的self是什么? |
基本语法结构: def 方法名(self,args): pass 其中,def是关键字,方法名需要全部小写字母,self是实例对象,args是参数。 class Dog: def __init__(self,name): self.name=name def play(self): print("汪汪汪,我是",self.name) dog=Dog("茶几") dog.playdef 中定义的内容全部是方法,后面实例化我们需要调用这些方法。 例子:使用实例对象来调用方法 使用类名(Animal)来调用方法: 如果和使用实例对象一样的话。。。结果会报错。。。 如果我们直接添加一个self呢?结果还是报错 提示self没有定义,这里提示self没有定义是因为这个变量根本没有被赋值。。。而我们前面方法中的self,是指的实例对象,而实例对象是经过这个类实例化获得的,也就是第63行代码中的dog。这里我们再添加这个dog来对看一下。 实例对象的交叉使用(类似于函数中的函数嵌套) 函数嵌套是指在一个函数内可以调用其他的函数 第64行创建了一个实例对象以后,程序会调用sleep这个方法,程序会找到第60行的sleep,执行61-62行的代码。 我们在第61行的注释中说self.eat相当于self.dog,是因为下面实例对象的变量名叫dog。 如果不使用实例对象,也可以使用类来直接调用,但是需要两个参数,类名+方法名,前文已经叙述。 类变量与实例变量的区别: class student(): age = 0 name = 'stu' # age,name是类变量 def __init__(self,age,name): self.age = age self.name = name # 访问实例变量(用self.age self.name) student1 = student(18,'hello') print(student1.name) # 打印实例变量,输出hello print(student.name) # 打印类变量,输出stu性质上的区别: |
CopyRight 2018-2019 实验室设备网 版权所有 |