다음 클래스를 고려하십시오.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
동료들은 다음과 같이 정의하는 경향이 있습니다.
class Person:
name = None
age = None
def __init__(self, name, age):
self.name = name
self.age = age
주된 이유는 선택한 편집기가 자동 완성 속성을 표시하기 때문입니다.
개인적으로, 나는 후자가 싫어합니다 None
.
어느 것이 더 나은 연습이 될 것이며 어떤 이유로?
__init__
이미 속성을 설정하면 자동 완성 등이 제공됩니다. 또한 None
IDE를 사용 하면 속성에 대해 더 나은 유형을 유추하는 것을 방지하므로 대신 적절한 기본값을 사용하는 것이 좋습니다 가능한).
typing
모듈이 있는데, IDE와 린터에 힌트를 제공 할 수 있습니다. 그런 종류의 것들이 당신의 공상을 간질이게한다면 ...
self
. 하더라도 self.name
또는 self.age
할당되지 않은 __init__
인스턴스에 표시되지 것입니다 그들은 self
, 그들은 단지 클래스에 표시 Person
.