首页 > 解决方案 > 为什么在python中重新分配对象私有属性不会抱怨?

问题描述

我是 python 新手,开始在 python 中学习 OOP。我已经知道,如果我想在 python 类中将属性设为私有,我只需要在属性名称前添加一个双下划线 (__)。它不应该从外部访问,但如果我尝试重新分配它,它不会抱怨。似乎另一个属性正在使用相同的名称创建,它是公共的,而不是私有的!!!有点混乱!!

class Class1:
    def __init__(self, x):
        self.__x = x
    def getX(self):
        return self.__x


ob = Class1(10)
print(ob.getX())

ob.__x = 'This should not work!'
print(ob.__x)

print(ob.getX())

输出:

10
This should not work!
10

标签: pythonclassoop

解决方案


推荐阅读