初期化時にオブジェクトをNone
に設定できますが、依然としてクラスに属していますか?特定のクラスのオブジェクトをNoneとして定義します。
class Foo:
def do_stuff():
pass
bar_1 = Foo()
bar_2 = None
私が考えている特定の目的は、私はbar_2
が異なるモジュールaccross利用可能であってもよいが、(無関係な理由のために)後日、それを定義したいということです。あなたがコードを実行するとうまく動作します。しかし、私のIDEは、bar_2
がタイプFoo
であることを知らないので、は、たとえば、bar_1
のように自動補完オプションとして表示されません。
私はPythonが強く型付けされた言語ではないことを理解していますが、bar_2
がFoo
であることをPythonに伝える方法があれば、自動補完の問題は解決しません。
私のIDE(PyCharm、具体的にはbar_2
のクラスを認識させるための別の方法がある場合は、わかりました)。これは非常に良い方法ではありませんあなたは一般的に
assert isinstance(bar_2,Foo)
# anything below this and in scope will autocomplete bar_2 with Foo's methods
を行うことができますFOOのインスタンスであるために仮定されており、避けるべきであるが、それは最も IDEの中でオートコンプリートを有効にするために働く
bar2とは何ですか? –
現在のコードでは、 'bar_2'は' Foo'タイプではありません。 'Foo'にするには、それをそのように定義する必要があります。初期化を遅らせる必要がある場合は、遅延させたいアクションを実行する '__init__'以外のメソッドを作成し、準備ができたら呼び出します。 – ChrisP