class Test():
def __init__(self):
self.__test = "cats"
print(self.__test)
def __example(self):
print("Hello World")
x = Test()
print(x.__dict__)
对于我上面写的代码,print语句将显示为访问变量test
,我需要编写_Test__test
,但是如图所示,如果我在__init__
方法中直接调用它,我可以打印该变量。所以我的问题是,如果我可以在它被命名为self.__test
之后直接访问它,它在哪一点上会被损坏?你知道吗
当您从类外部引用它时,它会损坏。你知道吗
您的第5行
print(self.__test)
没有损坏,因为您是从类中引用它的。只有当你在课外参考它时,它才会被弄坏。因此,你会打电话给注意,您还可以在类中使用
self._Test__test
。你知道吗我认为这篇文章解释得很好:The Meaning of Underscores in Python。你知道吗
通过
.__
访问的属性在类主体的任何地方都会被损坏(但是内部类声明会首先到达它)。你知道吗把它想象成句法上的糖。
在
Test
类主体的上下文中,self.__test
是损坏名称self._Test__test
的别名;在上下文中,它们的意思完全相同。你知道吗一个示范会让这更清楚。首先,一些助手类。你知道吗
现在演示一下:
输出为:
相关问题 更多 >
编程相关推荐