상속 된 메서드에서 키워드 인수가 특별히 처리됩니다?수퍼 클래스에서 키워드 인수가있는 Python 2.7 함수 : 하위 클래스에서 액세스하는 방법?
정의 된 클래스의 키워드 인수를 사용하여 인스턴스 메서드를 호출하면 모두 잘됩니다. 내가 서브 클래스에서 그것을 호출 할 때, 파이썬은 너무 많은 매개 변수를 전달한다고 불평합니다.
다음은 예제입니다. "간단한"메서드는 키워드 args를 사용하지 않으며 상속은 잘 작동합니다 (심지어 나를 위해 :-) "KW"메서드는 키워드 args를 사용하고 상속은 더 이상 작동하지 않습니다 ... 적어도 나는 차. 내가 예상대로
class aClass(object):
def aSimpleMethod(self, show):
print('show: %s' % show)
def aKWMethod(self, **kwargs):
for kw in kwargs:
print('%s: %s' % (kw, kwargs[kw]))
class aSubClass(aClass):
def anotherSimpleMethod(self, show):
self.aSimpleMethod(show)
def anotherKWMethod(self, **kwargs):
self.aKWMethod(kwargs)
aClass().aSimpleMethod('this')
aSubClass().anotherSimpleMethod('that')
aClass().aKWMethod(show='this')
인쇄 this
, that
및 this
. 그러나
aSubClass().anotherKWMethod(show='that')
예외 : 일단
self.aKWMethod(**kwargs)
:
당신은 당신이 메서드를 호출 할 때 ** kwargs로를 사용할 필요가TypeError: aKWMethod() takes exactly 1 argument (2 given)
어리석은 실수 - 설명서가 가끔 도움이됩니다! 감사! – virtualnobi