所以我正在尝试制作一个基本的类功能程序,并且我在一个奇怪的事情的早期阶段陷入困境。我有打开文本文件的函数来创建Class对象和所有,但问题是我似乎无法调用任何对象值。以下是我的对象生成方式的要点:
Class MyClass:
def __init__(self,val1,val2):
self.__val1 = val1
self.__val2 = val2
def main():
dict = {}
...
dict[key] = MyClass(val1, val2)
此时我应该能够用
调用对象值 dict[key].__val1
dict[key].__val2
但继续在标题中收到错误。
答案 0 :(得分:1)
通过在名称前添加“_ClassName
”来破坏双下划线名称。在 Inside 类方法中,您可以使用__var1
表示法引用这些名称,Python会为您实际找到它们。
在课堂体外,您需要提供完整的受损名称才能访问它,即:
print(d[k]._MyClass__val1)
顺便说一句,即使这可能是一个例子,也不要使用像dict
这样的名字;他们掩盖了他们的内置对手。像我这里一样使用d
之类的名称。