用"__"做为前缀定义类的内部函数之后,实践发现这个函数将不能被继承。即使子类继承并重新实现了这个函数,那么当父类引用指向子类对象的时候,调用这个函数调用的还是父类的这个函数。
例如:
#!/usr/bin/python
#we cann't derive prive function which prefix with "__"
class MyBase:
def __init__(self):
pass
def __my(self):
print "base"
def my(self):
self.__my()
class MySub(MyBase):
def __init__(self):
pass
def __my(self):
print "sub"
myobj = MySub()
#myobj.__my() #run error
myobj.my() #print "base"
阅读(5013) | 评论(4) | 转发(1) |