#encoding:utf-8
class TestClass(object):
classval1 = 100 #类变量
def __init__(self):
self.memval2 = 200 #成员变量
self.memfuntion2(600)
def memfuntion1(self,val = 400):
localval3 = 300 #函数内部的局部变量
self.nmval4 = val
self.nmval5=500
def memfuntion2(self,val = 600):
self.memval6 = val
self.memval7=700
if __name__ == '__main__':
inst = TestClass()
print(TestClass.classval1)
print(inst.classval1)
print(inst.memval2)
#print(inst.localval3)
#print(inst.nmval4)
#print(inst.nmval5)
print(inst.memval6)
print(inst.memval7)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
运行上面程序,我们可以知道:
classval1是类变量,可以由类名TestClass直接调用,也可以有对象inst来调用;
memval2是成员变量,因为它是在类的构造函数内以self.开头来定义的。可以由类的对象来调用,这里可以看出成员变量一定是以self.的形式给出的,因为self的含义就是代表实例对象;
localval3 不是成员变量,它只是成员函memfuntion()内部的局部变量;
nmval4和nmval5都不是成员变量,虽是以self.给出,但并没有在构造函数中进行初始化。
注释的三条语句不能执行,TestClass类没有这些成员
memval5和memval6也都是成员变量,虽然他们在成员函数memfunction2()中定义,但是在构造函数中调用了memfunction2()函数.
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
</div>