반응형
다중 상속 클래스를 작성하다 보면, 아래와 같은 경고를 만날 수 있다.
W0235 - Useless super delegation in method '__init__'
이 경고는 오류 설명이 명확하지 않지만, 실제 코드상 안정성에 관련이 있다고 할 수 있다.
부모 클래스나 자식 클래스에서 받아들이는 인자의 기본값을 설정하면 문제가 해결 된다.
기본값을 설정할 때 주의할 점은 하위 클래스나 부모 클래스중 영향으로 미치는 경우를 고려해 기본 값을 지정할 클래스를 지정하는 것이 좋다.(하위 클래스에서만 사용되는 기본 값이라면 하위 클래스에, 전체적으로 사용되는 기본 값이라면 부모 클래스에 설정한다.)
Bad Case
class Parent:
def __init__(self, name):
print(name)
class Child(Parent):
def __init__(self, name):
super().method(name)
Good Case
class Parent:
def __init__(self, name = None):
print(name)
class Child(Parent):
def __init__(self, name = 'chid'):
super().method(name)
위와 같이 기본 값을 지정하면, W0235 경고가 사라진다.
'Python' 카테고리의 다른 글
Python - 다중 상속 클래스(super) 이해와 활용 (0) | 2022.08.15 |
---|---|
Python - SlackBot 기본 만들기, 스크립트 다중 실행 (0) | 2022.08.15 |
Python 다중, 중첩 Class, Sub Class (0) | 2022.08.02 |
Python - 왜 f-string을 쓰라는 걸까 "Formatting a regular string which could be a f-stri (0) | 2022.08.02 |
Python - Log Decorator 활용 (0) | 2022.08.01 |
댓글0