次のクラスを検討してください。
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。