我阅读了大量文档和答案,到目前为止,我还没有发现任何能保护python类属性不受客户端修改的东西。
这是一个例子:
class Dog:
def __init__(self):
self._legs = 4
@property
def legs(self):
return self._legs
@legs.setter
def legs(self, n):
self._legs = 4
无论我们是否使用leg.setter方法,用户都可以通过_legs内部名称随时读取或修改Dog的属性。他们甚至可以通过调用以下命令来修改其值:
dog = Dog()
dog._legs = 3
print(dog.legs)
# output 3
我真的看不到它如何防止东西被客户端窃取或修改吗?