0

プログラムで定期的に自己変数を宣言しています:

def __init__(self):
    self.x = dict()

その後、コード (最初に呼び出される関数) で、self.x に値を割り当てました。ただし、後で関数で実際に self.x を使用しようとすると、self.x は {} として出力されます。正しく割り当てていることと、データが健全であることは確かにわかっていますが。

ここに少しPython初心者がいますが、私が見逃しているものはありますか? プログラムの記述方法でスコープが失われている可能性があるため、これらの変数をグローバルとして宣言する必要がありますか?

ありがとう

4

1 に答える 1

0

コードの残りの部分を確認せずに質問に答えるのは難しいですが (詳細情報が提供されたら、この投稿を編集します)、何が問題なのかについての洞察を提供できるかもしれません。関数は、おそらく以下のクラスに示すようなものになるはずです。

class Foo:
    def __init__(self):
        self.x = dict()

    def add(self):
        self.x[1] = 'a'  # add something to our dict

    def redefine(self):
        self.x = {2:'b', 3:'c'}  # reassign our dict

したがって、すべてが正常であることを確認するには:

foo = Foo()
print foo.x
foo.add()
print foo.x
foo.redefine()
print foo.x

出力:

{}
{1: 'a'}
{2: 'b', 3: 'c'}

于 2012-10-07T17:34:33.133 に答える