class Test1:
def __init__( self ):
self.__test = 1
def getvalue( self ):
return self.__test
class Test2( Test1 ):
def __init__( self ):
Test1.__init__( self )
self.__test = 2
test = Test2()
为什么打印 test.getvalue() 返回 1 ?
在Python中,私有成员__bar
班级的Foo
将自动重命名 to _Foo__bar
, 所以__test
in Test1
is _Test1__test
并且在Test2
is _Test2__test
。两位成员其实是不同的。这是按设计, to “避免名称与子类定义的名称发生名称冲突”.
使用单个下划线_test
如果您希望子类看到该变量,同时仍希望使其不属于公共接口的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)