python面向对象编程中,self作用类似于c++的this,即指向当前的对象。
1 class TempRes(object):
2 RetDc = 1
3 ErrDc = 0
4 def __init__(self):
5 print TempRes.RetDc
6 print self.RetDc
7 pass
8 def setRet(self,value):
9 self.RetDc=value
10 obj1=TempRes()
此时输出结果是一样的,都是1
1 class TempRes(object):
2 RetDc = 1
3 ErrDc = 0
4 def __init__(self):
5 print TempRes
6 print self
7 pass
8 def setRet(self,value):
9 self.RetDc=value
10 obj1=TempRes()
此时输出对象:
C:\Users\Nemo\Desktop>python test.py
<main.TempRes object at 0x024DCD30>
可以看出 一个是类 一个是对象。
改变成员变量的值时:
1 class TempRes(object):
2 RetDc1 = 1
3 RetDc2 = 1
4 def __init__(self):
5 pass
6 def setRet(self,value):
7 self.RetDc1=value
8 TempRes.RetDc2=value
9 obj1=TempRes()
10 obj2=TempRes()
11
12 obj1.setRet(333)
13
14 print obj1.RetDc1
15 print obj2.RetDc1
16
17 print obj1.RetDc2
18 print obj2.RetDc2
运行结果:
333
1
333
333
因此可以看出,类内对self成员变量的改变,只对当前对象有效。
而对类变量例如8行的 TempRes.RetDc2=value ,改变则影响到跨对象有效。有点类似于tcl语言的common变量的定义。
原文链接: https://www.cnblogs.com/nemolmt/p/6646764.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/251733
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!