1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python 类变量 成员变量 静态变量 局部变量

Python 类变量 成员变量 静态变量 局部变量

时间:2024-03-30 04:40:26

相关推荐

Python 类变量 成员变量 静态变量 局部变量

python中类变量和成员变量、局部变量总结

转载自:/clarenceyang/p/9685543.html

作者: 勿忘-前行

class Member():num=0 #类变量,可以直接用类调用,或用实例对象调用def __init__(self,x,y):self.x=x #实例变量(成员变量),需要它是在类的构造函数内以self.开头来定义的self.y=yself.fuc(self.x,self.y)def add(self):total=2 #局部变量self.vara=3 # 虽是以self.给出,但并没有在构造函数中进行初始化self.varb=4fina=(self.x+self.y)*totalreturn finadef fuc(self,a,b):self.varc=a #成员变量,他们在成员函数fuc()中定义,但是在构造函数中调用了fuc()函数self.vard=b#/article/49402.html 同时可以一道区分学习python中的实例方法、静态方法、类方法、类变量和实例变量

Python 类变量,成员变量,静态变量,局部变量

转载自:/ymjyqsx/p/7380279.html

作者:去做点事情

局部

class TestClass(object):val1 = 100def __init__(self):self.val2 = 200def fcn(self,val = 400):val3 = 300self.val4 = valself.val5 = 500if __name__ == '__main__':inst = TestClass()print TestClass.val1print inst.val1 print TestClass.val2 #会报错。类不能访问成员变量print inst.val2print inst.val3#会报错print inst.val4 #会报错print inst.val5#会报错

val1是类变量,可以由类名直接调用,也可以由对象来调用;

val2是成员变量,可以由类的对象来调用,这里可以看出成员变量一定是以self.的形式给出的,因为self的含义就是代表实例对象;如果__init__内的变量没有加self,那就变成一个__init__的局部变量;

val3不是成员变量,它只是函数fcn内部的局部变量;

val4和val5是成员变量,但并没有初始化,所以这里会报错

这个是能正确运行的

class TestClass(object):val1 = 100def __init__(self):self.val2 = 200def fcn(self,val = 400):val3 = 300self.val4 = valself.val5 = 500def add(self):self.fcn()result = self.val4 + self.val5return resultif __name__ == '__main__':inst = TestClass()print inst.add()

这个是不能正确运行的,因为fcn是对val4,val5初始化,这里没运行fcn就没初始化

class TestClass(object):val1 = 100def __init__(self):self.val2 = 200def fcn(self,val = 400):val3 = 300self.val4 = valself.val5 = 500def add(self):# self.fcn()result = self.val4 + self.val5return resultif __name__ == '__main__':inst = TestClass()print inst.add()

概括的一个例子

class TestClass(object):val1 = 100def __init__(self):self.val2 = 200def fcn(self,val = 400):val3 = 300self.val4 = valself.val5 = 500def add(self):self.val4 = 1self.val5 = 2result = self.val4 + self.val5return resultif __name__ == '__main__':inst = TestClass()print inst.add()print inst.val4inst.fcn()print inst.val4

运行出来的结果:

可以看到,只要你对val4,val5初始化了就可以用实例访问,证明这个带self的是成员变量,不是局部变量。运行fcn后,对成员变量的值进行了改变。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。