:Python 3에서 kwargs와 상속은 어떻게 작동합니까? 다음 샘플 코드 고려
#!/usr/bin/python3
class Parent:
def __init__(self, **kwargs):
# Expect data1, data2
self.values = kwargs
# Accessor method to set object values
def setvalue(self, k, v):
self.values[k] = v
# Accessor method to get/return object values
def getvalue(self, k):
return self.vlaues.get(k, None)
class Child(Parent):
def __init__(self, **kwargs):
# Expect data3, data4
self.values = kwargs
# Accessor method to set object values
def setvalue(self, k, v):
self.values[k] = v
# Accessor method to get/return object values
def getvalue(self, k):
return self.values.get(k, None)
def main():
new_object = Child(data1 = 'abc', data2 = 'def',
data3 = 'ghi', data4 = 'jkl')
for v in new_object.values:
print('{}: {}'.format(v, new_object.getvalue(v)))
new_object.setvalue('data1', 'tuv')
new_object.setvalue('data4', 'xyz')
for v in new_object.values:
print('{}: {}'.format(v, new_object.getvalue(v)))
if __name__ == "__main__": main()
나는 여전히 몇 가지 기본적인 상속을 사용하는 동안이 kwargs
의 flexibity을 활용할 수있는 방법을 궁금하네요. 실제로 쓰는 실제 응용 프로그램에는 각 클래스에는 실제로 여러 가지 특성이 있습니다.
내 관심사는 kwargs
너무 유연한 (그리고 성운)이기 때문에, 나는 내 수업의 부모 - 자식 관계를 유지할 수 있다는 것입니다 - data1
, data2
, data3
, 그리고 data4
모든 Child
클래스에 적용 얻을 것이다 .
어떻게 data1
과 data2
이 Parent
슈퍼 클래스의 속성이 있는지 확인 않으며, data3
및 data4
는 Child
서브 클래스의 속성이 있다고?
코드를 다소 단순하고 우아하게 유지하면서 올바른 방식으로 클래스 구조를 디자인하려고합니다. 그건 상관 없니? 어쩌면 나는 이것에 대한 잘못된 길로 갈 것입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
만약 내가 여기에서 어슬렁 거리면 미안. 이해하려고 애를 써. 귀하의 도움과 인내에 미리 감사드립니다 ...
Parent 클래스의 특성과 Child 클래스의 특성 사이를 구별하는 것은 의미가 없습니다. 어떤 언어로든 상속의 전체 요점은 아이가 * 부모라는 것입니다. –