Kann ein Objekt bei der Initialisierung auf None
gesetzt werden, aber trotzdem zu einer Klasse gehören?Ein Objekt einer bestimmten Klasse als None definieren
class Foo:
def do_stuff():
pass
bar_1 = Foo()
bar_2 = None
Der spezifische Zweck ich im Sinne habe, ist, dass ich bar_2
accross verschiedene Module zur Verfügung stehen soll, aber es zu einem späteren Zeitpunkt (aus Gründen, die nicht relevant sind) zu definieren. Es funktioniert gut, wenn Sie den Code ausführen. Meine IDE weiß jedoch nicht, dass bar_2
vom Typ Foo
ist, und zeigt mir daher nicht do_stuff()
als Autocomplete-Option, wie es zum Beispiel für bar_1
tut.
Ich verstehe, dass Python nicht eine stark typisierte Sprache ist, aber ich denke, wenn es eine Möglichkeit, Python zu sagen war, dass bar_2
vom Typ Foo
, es würde das Problem der die automatischen Vervollständigung löst nicht angezeigt.
Wenn es eine andere Möglichkeit gibt, meine IDE (speziell PyCharm) auf die Klasse bar_2
aufmerksam zu machen, würde ich mich freuen zu wissen.
Was soll bar2 sein? –
In Ihrem aktuellen Code ist 'bar_2' nicht vom Typ' Foo'. Wenn Sie möchten, dass es "Foo" ist, müssen Sie es so definieren. Wenn Sie die Initialisierung verzögern müssen, erstellen Sie eine andere Methode als "__init__", die die Aktionen ausführt, die Sie verzögern möchten, und rufen Sie sie dann auf, wenn sie bereit sind. – ChrisP