我有一个课Conf:
class Conf(object):
def __init__(self):
pass
def __setattr__(self,name,value):
current_container().__set_conf(name,value)
current_container()返回接口类的实例:
class interface(Container):
def __init__(self,name):
pass
def __set_conf(self,name,value):
...
super(interface,self).__set_conf(name,value)
在调用conf.ip=...
之后出现异常:
AttributeError: 'interface' object has no attribute '_Conf__set_conf'
似乎python在方法名称中添加了前缀“_Conf”。怎么避免这个?
答案 0 :(得分:2)
你是name mangling的受害者,主要是为了避免事故。如果您想指定_set_conf
方法应该是私有的,只有一个下划线可以充分沟通。
Private Variables and Class-local References提供了有关此功能实用程序的更多信息。