반응형
저는 파이썬을 배우기 시작한 Java 사람입니다. 이 예를 보자 :
class Person():
def __init__(self, name, phone):
self.name = name
self.phone = phone
class Teenager(Person):
def __init__(self, name, phone, website):
self.name=name
self.phone=phone
self.website=website
많은 중복 코드가 있다고 확신합니다 (Java에서는 위의 코드에 대해 많은 중복이 있음을 알고 있습니다).
부모 클래스에서 이미 상속 된 속성과 관련하여 중복되는 부분은 무엇입니까?
해결 방법
파이썬에서 클래스에 대한 __ init __
함수를 작성할 때 항상 수퍼 클래스의 __ init __
함수를 호출해야합니다. 이를 사용하여 관련 속성을 수퍼 클래스에 직접 전달할 수 있으므로 코드는 다음과 같습니다.
class Person(object):
def __init__(self, name, phone):
self.name = name
self.phone = phone
class Teenager(Person):
def __init__(self, name, phone, website):
Person.__init__(self, name, phone)
self.website=website
다른 사람들이 지적했듯이 줄을 바꿀 수 있습니다.
Person.__init__(self, name, phone)
와
super(Teenager, self).__init__(name, phone)
코드는 똑같은 일을 할 것입니다. 이는 파이썬에서 instance.method (args)
가 Class.method (instance, args)
의 약어이기 때문입니다. super
를 사용하려면 내 코드에서 수행 한 것처럼 Person
의 기본 클래스로 object
를 지정해야합니다.
참조 페이지 https://stackoverflow.com/questions/8853966
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python 및 WebDriver로 Assert / VerifyElementPresent? (0) | 2020.09.19 |
---|---|
파이썬 PEP 8, 키워드 인수 또는 기본 매개 변수 값에서 '='주위에 공백이없는 이유는 무엇입니까? (0) | 2020.09.19 |
파이썬 ndarray를 float64에서 정수로 변환 (0) | 2020.09.19 |
파이썬 파일을 이동하는 방법? (0) | 2020.09.19 |
파이썬 Skipping every other element after the first (0) | 2020.09.19 |
댓글