我有以下Python代码。我无法得到 要读取的实例变量。帮助赞赏。
class Parrot(object):
def __init__(self):
self._voltage = '100000'
@property
def voltage(self):
"""Get the current voltage."""
return self._voltage
a = Parrot()
print(a._voltage)
a._voltage = '500000'
print(a._voltage)
修改
这个问题的关键是要了解一个财产如何取代旧财产 变量。不知何故,每个人都只是指出Python即将成熟,而且 我们有责任不使用“私人”变量,因为它们是 在python中可见。但是没有人指出你只是把旧的变量改成了 这种情况
voltage
私人
_voltage
并用属性
替换旧变量(电压)@property
def voltage(self):
这会让你在这个类中访问属性的方式相同,所以没有人 谁使用这个类必须改变他们的代码。
- 就像你访问变量一样,因为 您仍然可以像变量一样访问该属性 - 例如:
a.voltage = 'over 9000'
但是它为这个类的开发人员提供了更多的控制权(将电压转为只读)。我只是 我觉得没有人能以一种可以理解的方式解释房产的力学...... - >虽然我先用谷歌搜索,但我无法理解属性。 无论如何......有点荒谬,因为它现在似乎没有任何困难。
干杯
NIMI
答案 0 :(得分:2)
这是正常的,因为Python不是束缚&纪律语言。
没有真正等同于'private',但有时会使用带有两个前导下划线的属性,尽管这些属性旨在避免在出现问题时出现问题。
一个前导下划线是为了避免在使用from xx import *
导入时导入此内容。