をインスタンス化:は、私は次のようないくつかのPythonコード持っているグローバルオブジェクト
ここdef a():
x.b()
def c():
x = create_x()
a()
を、x
はオブジェクトなので、c()
に、私はx
を作成し、機能a()
を実行したいです。私はの引数として渡す必要はなく、x
をグローバルにします。しかし、上記のコードを実行しようとすると、のx
が何も参照していないと伝えられます。
だから、これに対する標準的な解決策は何ですか?
x = 0
def a():
global x
x.b()
def c():
global x
x = create_x()
a()
しかし、実際にはオブジェクトであるのに対しx
は、整数であることが示唆されているので、これは、少し奇妙に思える:ひとつのアイデアは、グローバルx
を定義し、0に設定することです。 Cにおいて
++ Iは、通常、x
へのポインタを作成0に設定し、新しいオブジェクトx
によって作成されたメモリへのポインタを設定することによって、これを解決するだろう。しかし、Pythonの中で最善の解決策は何ですか?
使用 'NONE'? – Pit
最初に 'x'を設定しないでください...?それは 'c'を実行することによって作成されます。関数の外で宣言する必要はありません。 'global'はすでにそうしています。 – deceze
役立つかどうかを確認する:http://stackoverflow.com/questions/16511321/python-global-object-variable – planet260