1

他の場所で作成された変数に目的の名前が保持されているクラス オブジェクトをインスタンス化しようとしています。

クラスのインスタンスに変数が保持する名前を付ける方法がわかりません。

例:

class foo:
    def __init__(self):
        self.var1 = "bar"

if __name__ == "__main__":
    test = "a" # returned by another func.
    [string held by variable 'test'] = foo()
    print a.var1

これは可能ですか?(または推奨さえ...)

4

2 に答える 2

2

a実行時まで名前がわからない場合、変数を使用してプログラミングするのが難しくなるため、お勧めできません。

代わりにdictを使用することを考えるかもしれません:

data = {}
test = func()   # "a"
data[test] = foo()
于 2012-11-06T03:01:41.303 に答える
0

関数の方がおそらく優れています。そうすれば、実行する必要のある作業がカプセル化され、再利用できます。

def do_work(an_instance_of_foo):
    print an_instance_of_foo.var1

class foo:
    def __init__(self):
        self.var1 = "bar"

if __name__ == "__main__":
    do_work(foo())

単語も必要な場合は、関数に渡すことができます。

def do_work(an_instance_of_foo, my_word):
    # etc.

fooまたは、のインスタンスを特定の名前に関連付ける必要がある場合は、(@ unutbuが提案したように)辞書を名前空間として使用できます。

于 2012-11-06T03:03:35.373 に答える