python - 为什么在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
解决方案
推荐阅读
- javascript - 故事书相对路径故事
- r - 使用 geom_segment 指示超出 log10 比例限制的 geom_errorbar
- assembly - 整数乘法和索引寻址
- qt - 鼠标控制 Qt3DWindow 而不使用 *Event() 或 eventFilter
- php - 如何使用字符串值修复黄昏 $browser->select()
- python-3.x - Flask Web 应用程序未在 PythonAnywhere 上呈现
- php - PHP 变量和优化
- c# - 如何正确使用四元数来偏离原始旋转的 x 量?
- google-cloud-firestore - 服务器端代码的 Firestore 安全规则
- javascript - 如何在 Ionic 中获取设备的初始绝对方向