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