6
miras ve Sorumluluk tasarım modelinin Zincir kullanılarakPython - Ben 3 sınıfları ile test kod yazmak
ve ben print(c._abc is b._abc)
baskı altına kodu hakkında karıştı, cevap Doğru, ama benim asıl düşünce olduğunu ikidir farklıdır.
Ardından, 2. Aşama, self._abc = kwargs
unvanından rahatsızlık duyuyorum ve diğer 3 satırı, cevabını yanıtlayın.
Neden böyle?
import abc
class A:
__metaclass__ = abc.ABCMeta
_abc = {}
def __init__(self,successor=None,**kwargs):
self._successor = successor
@abc.abstractmethod
def handlerRequest(self):
pass
class B(A):
def __init__(self,successor=None,**kwargs):
self._successor = successor
print(kwargs)
# self._abc = kwargs # round 2<---uncomment here
self._abc['a'] = kwargs['a'] # round 2<---comment here
self._abc['b'] = kwargs['b'] # round 2<---comment here
self._abc['Hello'] = 'World' # round 2<---comment here
def handlerRequest(self):
if (self._successor is not None):
self._successor.handlerRequest()
print(self._abc)
class C(A):
def handlerRequest(self):
if (self._successor is not None):
self._successor.handlerRequest()
print(self._abc)
list = {'a':1,'b':2}
b = B(**list)
c = C(b)
print(c._abc is b._abc)
c.handlerRequest()