-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