如何使Python属性也可以调用?

时间:2017-03-29 10:36:13

标签: python properties

我有

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声明属性,成员和方法都共享相同的命名空间,因此可能会变得复杂,但也许有办法。

0 个答案:

没有答案