self.name = name
print self.name
def __work(self,salary):
print "%s salary is: %d"%(self.name,salary)
def worker(self):
self.__work(500) #在类内部调用私有方法
if __name__=="__main__":
officer = Person("Tom")
#officer.__work(1000)
officer.worker()
#运行结果
Tom
Tom salary is: 500
结果正是要得到的。看官是否理解私有方法的用法了呢?
专有方法
如果是以双划线开头,但不是以它结尾,所命名的方法是私有方法;
如果以双划线开头,并且以双划线结尾,所命名的方法就是专有方法。
这是python规定的。所以在写程序的时候要执行,不执行就是跟python过不去,过不去就报错了。
比如前面反复提到的__init__(),就是一个典型的专有方法。那么自己在写别的方法时,就不要用__开头和结尾了。虽然用了也大概没有什么影响,但是在可读性上就差很多了,一段程序如果可读性不好,用不了多长时间自己就看不懂了,更何况别人呢?
关于专有方法,出了__init__()之外,还有诸如:__str__,__setitem__等等,要向看,可以利用dir()函数在交互模式下看看某个函数里面的专有东西。当然,也可以自己定义啦。
因为__init__用的比较多,所以前面很多例子都是它。










