У кого-нибудь есть идеи о том, как реализовать метод 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
Что такое ленивый() метод? –
Почему вы отметили это с помощью java, C++ или lisp? Кроме того, что означает «ленивый» для вас в этом контексте? Я действительно не знаю, о чем вы просите. –
@PrincessOftheUniverse Я не думаю, что это плохой вопрос –