본문 바로가기
Python

Python - W0235 Useless super delegation in method '__init__'

by 올엠 2022. 8. 15.
반응형

다중 상속 클래스를 작성하다 보면, 아래와 같은 경고를 만날 수 있다.

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 경고가 사라진다.

 

태그

, , ,

댓글0