1 平常python变量(非类相干变量)很轻易明白,在被赋值后即变量存在,可读可写。
2 Python类的变量(类变量和实例对象变量)以某种体式格局在某处所被赋值,即存在,可被读写。
2.1 Python类变量被赋值
(1)类的设想里
class里def外,经由过程变量名能被赋值。
def里经由过程类对象即类名字的点运算变量名可被赋值。
(2)顺序里
经由过程类对象(类名字)的点运算类名字也可被赋值。
相干引荐:《Python视频教程》
2.2 Python实例对象变量被赋值
(1)类的设想时
def里经由过程self点运算变量名能被赋值,不一定非在init里,其他已被挪用的要领函数里也行。
(2)顺序里
经由过程实例对象的点运算变量名可被赋值。
通例,类里的变量经由过程类设想来完成(2.1(1)和2.2(1)),增添类里变量平常不采纳(2.1(2)和2.2(2))这类体式格局,完成(2.1(2)和2.2(2))可经由过程类的继承去完成。
class aa: w = 10 def __init__(self): self.x = 11 self.y = 12 def add(self): return self.x + self.y a = aa() print a.add() #下边两条指令各起何作用?结果是输出两个 20 么?照样两个13?照样? aa.w = 20 a.w = 13 print aa.w, a.w #顺序继承增添以下,如何明白这t和q呢?他们是___变量 a.t = 14 a.q = 15 print a.t, a.q #顺序继承增添以下,如何明白这m和n呢?他们是___变量 aa.m = 30 aa.n = 40 print aa.m, aa.n #好了再来个提拔吧 #顺序继承增添,以下三个print语句都能准确实行么?为什么? b = aa() print b.x,b.y print b.t,b.q print b.m,b.n
要处理以上题目,首先得清楚什么时候类才有了类变量,实例有了实例变量?
其次要深切明白类变量的作用,实例变量存在的局限和谁相干!
以上就是python类变量和实例变量的区分的细致内容,更多请关注ki4网别的相干文章!