Isn't really there encapsulation in Python
本问题已经有最佳答案,请猛点这里访问。
所以今天我问在python中是否有类似于
1 2 3 4 | class Vehiculo(): def __init__(self, peso): self.__peso = peso |
我从一个外族人那里得到了:
1 2 | car = Vehiculo(10) car.__peso = 20 |
打印出来的仍然是10,所以这就像
1 2 3 4 | class Vehiculo(): def __init__(self, peso): self._peso = peso |
而是印了20张。有人能给我解释清楚吗?我读过一篇非常相似的文章(很多人认为是重复的),但我不明白他们怎么说。这正是
谢谢你。
在Python类中没有公共的、私有的或受保护的东西。私有方法和值通常以
双下划线约定(
带有双下划线前缀的属性被破坏,但它们不是私有的。您仍然可以执行