Python无类属性/描述符?
问题描述:
我其实没有打算这样做这个;我只是想知道是否有可能。我怀疑它不是。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
答
简短的回答:第
一个普通的变量从未表现得像Python中的功能。 可能会有一些“魔术/棘手”的方式来做到这一点(通过绕过正常的限制),但这将被称为“猴子补丁” - 在Python社区中没有看到积极的东西。
[定义没有括号的python函数]可能的重复(http://stackoverflow.com/questions/7698603/defining-python-function-without-the-brackets) – 2015-02-24 01:12:20