我想延迟对类实例的成员函数的调用的评估,直到该实例实际存在为止。
最小工作示例:
class TestClass:
def __init__(self, variable_0):
self.__variable_0 = variable_0
def get_variable_0(self):
return self.__variable_0
delayed_evaluation_0 = test_class.get_variable_0() # What should I change here to delay the evaluation?
test_class = TestClass(3)
print(delayed_evaluation_0.__next__) # Here, 'delayed_evaluation_0' should be evaluated for the first time.
我尝试使用lambda
,yield
和生成器括号()
,但是我似乎无法使这个简单的示例生效。
我该如何解决这个问题?
答案 0 :(得分:1)
一个简单的lambda
可以工作。调用该函数时,该函数将从当前作用域获取test_class
变量,如果找到该变量,则该变量将起作用,如下所示:
delayed_evaluation_0 = lambda : test_class.get_variable_0()
test_class = TestClass(3)
print(delayed_evaluation_0())
打印3