【发布时间】:2011-03-09 23:02:53
【问题描述】:
我正在开发一个 Python 并发框架(我知道,YACF)并希望能够将变量作为 Futures 返回,但用户不会注意到它。
现在我在做:
x = someAsyncMethod(args)
print "Return value is %d" % x.get_value( )
因为该方法返回一个 Future 对象,但我希望它是:
x = someAsyncMethod(args)
print "Return value is %d" % x
但仍然调用了 x 的 .get_value( )。因此,我想代理包装 Python 对象,包括 int。类似于 __get__ 的东西,但是如果 ProxyInt 是 int 的代理并且我做了:
x = ProxyInt(10)
print x
或
n = x
我的“__get__”方法将被调用并在执行“return 10”之前做一些魔术
【问题讨论】:
-
仅供参考:我相信
__get__方法适用于描述符,但它并不能满足您的要求。描述符必须是类的属性...即,您必须通过属性访问该值,__get__才能工作。
标签: python concurrency metaprogramming