Betrachten Sie die folgende Klasse:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Meine Kollegen neigen dazu, es so zu definieren:
class Person:
name = None
age = None
def __init__(self, name, age):
self.name = name
self.age = age
Der Hauptgrund dafür ist, dass der Editor seiner Wahl die Eigenschaften für die automatische Vervollständigung anzeigt.
Persönlich mag ich letzteres nicht, weil es keinen Sinn macht, dass eine Klasse diese Eigenschaften hat None
.
Welches wäre eine bessere Übung und aus welchen Gründen?
__init__
bereits vorhandenen None
IDE automatisch vervollständigt. Außerdem verhindert die Verwendung, dass die IDE einen besseren Typ für das Attribut herleitet möglich).
typing
Modul, mit dem Sie Hinweise auf die IDE und Linter geben können, wenn Sie so etwas
self
. Selbst wenn sie in der Instanz nicht angezeigt werden self.name
oder self.age
nicht zugewiesen wurden , werden sie nur in der Klasse angezeigt . __init__
self
Person