益阳婚纱摄影,酷步影院,班级情况分析
上一节主要记录面向对象编程的思想以及python类的简单创建,这节继续深入类中变量的相关知识,here we go!
类变量定义:在类中,在函数体(方法)外的变量称为类变量。类变量在整个类中是公用的
类变量初始化:按照以上定义,类变量的初始化如下
1 class doctor: 2 ''' 3 类变量的初始化 4 ''' 5 salary = 100 # salary为类变量 6 7 def talk(): 8 print('i am a doctor')
类变量访问:因为类变量在整个类中是公用的,所以在不同的环境下都能访问。在类中函数体外直接使用 类变量 访问;在类中函数体内使用 类.类变量 或者 实例.类变量 访问;在类外使用 类.类变量 或者 实例.类变量访问
class doctor: ''' 在类中函数体外访问类变量salary ''' salary = 100 print(salary) def talk(self): print('i am a doctor') lisi = doctor() # 一旦实例化后,就会自动按顺序执行类中函数体外的代码 # 运行结果: 100
class doctor: ''' 在类中函数体内访问类变量salary ''' salary = 100 def talk0(self): ''' 使用类.类变量访问 ''' print('my salary is {0}'.format(doctor.salary)) def talk1(self): ''' 使用实例.类变量访问 ''' print('my salary is {0}'.format(self.salary)) lisi = doctor() lisi.talk0() lisi.talk1() # 运行结果: my salary is 100 my salary is 100
class doctor: ''' 在类外访问类变量salary ''' salary = 100 def talk(self): print('i am a doctor') lisi = doctor() print(doctor.salary) # 使用 类.类变量 访问 print(lisi.salary) # 使用 实例.类变量 访问 # 运行结果: 100 100
实例变量定义:在类中,在函数体(方法)内的变量称为实例变量。
实例变量初始化:按照上面定义,实例变量的初始化如下
1 class doctor: 2 ''' 3 初始化实例变量 4 ''' 5 6 def talk(self): 7 self.sentence = 'i am man' # self.sentence 为实例变量
实例变量访问:实例变量在整个类中并不是公用的,所以其访问范围有限。在类中函数体内使用 实例.实例变量 访问;在类外使用 实例.实例变量 访问
class doctor: ''' 类中函数体内的访问 ''' def talk(self): self.sentence = 'i am man' # 初始化实例变量self.sentence print(self.sentence) # 访问实例变量 lisi = doctor() lisi.talk() # 调用talk方法 # 运行结果: i am man
class doctor: ''' 类外访问实例变量 ''' def talk(self): self.sentence = 'i am man' # 初始化实例变量self.sentence lisi = doctor() lisi.talk() # 必须先执行talk方法才能访问talk方法里面的实例变量 print(lisi.sentence) # 类外访问实例变量
在python基础教程中讲解了的相关知识,本节提到的两个变量与它们有什么异同呢?
绝对来说,类变量与实例变量都是局部变量
相对来说,在类中,类变量相当于全局变量,但实例变量并不相当于局部变量,更不相当于全局变量
相对来说,在实例中,类变量和实例变量都相当于全局变量
一下子说的这么复杂难以理解,举个栗子
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
python求numpy中array按列非零元素的平均值案例
网友评论