问题描述
我写了这段代码:
class struct:
def __init__(self,dict):
for key in dict:
setattr(self,'__'+key,dict[key])
for key in dict:
setattr(self,'_'+key,key,dict[key])
def access_data(self):
print(self.a)
def access_protected_data(self):
print(self._a)
def access_private_data(self):
print(self.__a)
mydict = {'a': 2,'b': 'abc','c': [4]}
q = struct(mydict)
q.a = 4
q.access_data()
q._a = 5
q.access_protected_data()
q.__a = 6
q.access_private_data()
程序将打印:
4
5
并设置 q.__a = 6
我不明白这种行为。我认为该程序无法在类外设置 q.__a=6,同时我希望该程序能够从类内的函数中打印 q.__a。>
你能解释一下吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)