Python无类属性/描述符?

时间:2015-02-24 01:08:05

标签: python

我无意实际这个;我只是想知道它是否可行。我怀疑它不是。

是否可以在Python中创建一个变量,该变量在每次访问时解析为函数调用的结果,但是不通过中间对象访问它?有了课,我可以这样做:

class A:
    i = 0
    @property
    def data(self):
        self.i += 1
        return self.i

>>> a = A()
>>> a.data
1
>>> a.data
2

但是有一些(但是很黑的)方法可以消除这个课程吗?即:

i = 0
def func():
    global i
    i += 1
    return i
>>> data = some_magic_here(func)
>>> data
1
>>> data
2

1 个答案:

答案 0 :(得分:0)

简短回答:不。

普通变量永远不会像Python中的函数那样。 可能有一些“神奇/棘手”的方法(通过绕过正常的限制),但这将被称为“猴子修补” - 有些东西在Python社区中没有被看到。