Python - 使用var值命名类的实例

时间:2012-11-06 02:56:48

标签: python class

我正在尝试实例化一个类对象,该对象的所需名称保存在其他地方创建的变量中。

我无法弄清楚如何使类的实例具有变量所拥有的名称。

示例:

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

这可能吗? (甚至可取的......)

2 个答案:

答案 0 :(得分:2)

这是不可取的,因为如果在运行时之前不知道它的名字,就很难使用变量a进行编程。

您可能会考虑使用dict:

data = {}
test = func()   # "a"
data[test] = foo()

答案 1 :(得分: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所建议的那样)。