-2
有没有人有关于如何在任何语言中实现lazy()
方法的想法? Python示例代码可能会是这样的:在OOP中归因的惰性评估?
class A:
def __init__(self):
self.result = ""
pass
def invoke(self):
print("invoke A")
self.result = "RESULT"
def lazy(self):
# I'm not sure how to write this
class B:
def __init__(self, input):
self.input = input
def invoke(self):
print("invoke B: ", self.input)
a = A()
b = B(a.lazy().result) # b needs a reference to the result of `a` before `a` is invoked
a.invoke() # invoke A
b.invoke() # invoke B: RESULT
更多细节可以被看作here ...
答:我不认为这是一个贫穷的问题,但有人认为它是:
我得到了这样的答案:
class Dynamic:
def __init__(self, obj, attr):
self._obj = obj
self._attr = attr
def __str__(self):
return getattr(self._obj, self._attr)
class A:
def __init__(self):
pass
def invoke(self):
print("invoke A")
self.result = "RESULT"
class B:
def __init__(self, input):
self.input = input
def invoke(self):
print("invoke B: ", self.input)
a = A()
b = B(Dynamic(a, "result"))
a.invoke() # invoke A
b.invoke() # invoke B: RESULT
请问什么是lazy()方法? – 2013-02-23 16:12:11
为什么你用java,C++或lisp标记这个?另外,在这种情况下,“懒惰”对你来说意味着什么?我真的不知道你在问什么。 – 2013-02-23 16:12:21
@PrincessOftheUniverse我不认为这是一个糟糕的问题 – 2013-02-24 01:01:48