2015-02-24 128 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社區中沒有看到積極的東西。