Monkeypatching Python中的方法调用

Ale*_*lex -1 python properties reference callback

如何在Python中推迟属性访问?

我们假设我们有:

    def foo():
        ...

    class Bar:
        ...

    bar = Bar()
Run Code Online (Sandbox Code Playgroud)

是否可以实现Bar以便bar访问任何时间,foo()将提供回调返回的值?

barname已存在于上下文中.这就是为什么它的访问语义应该被保留(它不能是一个可调用的,转换成一个类的属性,使用SomeClass.bar而不是bar也行不通).我需要按原样保留所有内容,但是更改程序以便通过bar引用即时生成的数据foo().

UPD:感谢所有人的回答,从而在Python中做这类事情似乎是不可能的.我会找到一个解决方法.

ebo*_*ebo 6

我想你想把一些属性"data"链接到foo:

class Bar:
    data = property(lambda self: foo())


bar = Bar()
bar.data # calls foo()
Run Code Online (Sandbox Code Playgroud)