结论
python语言并没有提供真正的隐藏class中成员变量和成员函数的方法,但是有方法可以达到隐藏的效果
隐藏方法:
让需要隐藏的成员变量或方法名以"__"开头即可,记住,是两个下划线!
示例demo代码如下:
class A:
def __init__(self, x, y, z):
self.x = x
self._y = y
self.__z = z
def test():
a = A(1,2,3)
print(a.x)
print(a._y)
print(a._A__z)
print(a.__z)
test()
#运行结果如下
1
2
3
Traceback (most recent call last):
File "d:\main.py", line 14, in <module>
test()
File "d:\main.py", line 12, in test
print(a.__z)
AttributeError: 'A' object has no attribute '__z'
如何访问双下划线开头的隐藏变量和方法?
朋友们可以看到上述代码中输出了一个a._A__z,这就是访问所谓python中隐藏变量的方法。
只需要隐藏变量和方法名前加一个_Class即可,这里的Class是我们的类名,如a._A__z。
当然,这样的方法建议大家不要使用,因为既然隐藏就是不想让它被直接访问呗,还是实现专门的方法吧。