|
1
1
您可以通过使用来避免“切换”超类的属性 name mangling 用于“私有”*属性。名称以两个下划线**开头的属性的名称将自动损坏,这样它们就不会与超类中声明的名称发生冲突。
在最好的情况下,为了保护自己的“私有”属性,超类总是被编写为使用名称篡改。如果没有,那么至少您可以确保子类中名称被篡改的属性不会与它们发生冲突;仍然存在这样的风险
平民的
子类的属性可能与超类的未知“私有”属性冲突。在这种情况下,你能做的最好的事情(除了在他们的问题跟踪器上打开一个问题)是通过检查
*当然,在Python中,没有属性
真正地
私有的即使名称被篡改的属性也可以从声明它们的类外部访问,如果它们是通过其被篡改的名称访问的话。
|