我有
a = A()
a.setx(5)
print(a.x())
使用方法来设置和获取状态。
class A:
# as above
x = property(x, setx)
现在我考虑添加一个属性
a = A()
a.x = 5
print(a.x)
,其行为类似于属性
x()
由于遗留原因,读取权限a.x()
也必须仍然有效,不幸的是,该名称与计划属性相同。这似乎不起作用
a.x()
给出
TypeError:' int'对象不可调用
这意味着该物业首先出现。
有没有办法让属性也可以调用,以便a.x
返回x
属性时{{1}}会返回的内容?可能的属性返回值是字符串,数字和字符串和数字列表。
这个answer声明属性,成员和方法都共享相同的命名空间,因此可能会变得复杂,但也许有办法。