2015-02-24 107 views
2

我其实没有打算这样做这个;我只是想知道是否有可能。我怀疑它不是。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

[定义没有括号的python函数]可能的重复(http://stackoverflow.com/questions/7698603/defining-python-function-without-the-brackets) – 2015-02-24 01:12:20

回答

0

简短的回答:第

一个普通的变量从未表现得像Python中的功能。 可能会有一些“魔术/棘手”的方式来做到这一点(通过绕过正常的限制),但这将被称为“猴子补丁” - 在Python社区中没有看到积极的东西。