python面向对象的self是什么? 您所在的位置:网站首页 burying什么意思 python面向对象的self是什么?

python面向对象的self是什么?

#python面向对象的self是什么?| 来源: 网络整理| 查看: 265

基本语法结构:

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.play

def 中定义的内容全部是方法,后面实例化我们需要调用这些方法。

例子:使用实例对象来调用方法

使用类名(Animal)来调用方法:

如果和使用实例对象一样的话。。。结果会报错。。。

程序代码这里说我们需要添加一个self。。。

如果我们直接添加一个self呢?结果还是报错

程序代码(添加self之后)有报错了,说self没有被定义

提示self没有定义,这里提示self没有定义是因为这个变量根本没有被赋值。。。而我们前面方法中的self,是指的实例对象,而实例对象是经过这个类实例化获得的,也就是第63行代码中的dog。这里我们再添加这个dog来对看一下。

修改为dog运行成功。。。再一次证明self就是实例对象

实例对象的交叉使用(类似于函数中的函数嵌套)

函数嵌套是指在一个函数内可以调用其他的函数

第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 实验室设备网 版权所有