首页 > 解决方案 > 从字符串命名变量

问题描述

mabe我要求太多了,但是,是否有可能创建变量来实例化具有来自另一个字符串变量的名称的类?

像这样的东西:

 name = 'my_class_instance' # string variable holding name

 my_class_instance = my_cool_class(arg1, arg2, arg3)  #instance of a class in variable with name from string

兄弟,伊维卡

标签: python-3.xvariables

解决方案


首先,我不得不说这是非常非常危险的,不建议这样做。

但是你可以用exec函数来做到这一点。您可以在此页面上找到有关它的更多信息。

我为你写了一个有代表性的代码。

代码:

name = "my_class_instance"


class MyCoolClass(object):
    def __init__(self, arg1, arg2, arg3):
        self.arg1 = arg1
        self.arg2 = arg2
        self.arg3 = arg3

    def print_args(self):
        print(self.arg1)
        print(self.arg2)
        print(self.arg3)


exec(
    "{var_name} = MyCoolClass({arg1}, {arg2}, {arg3})".format(
        var_name=name, arg1="'test_1'", arg2="'test_2'", arg3="'test_3'"
    )
)

my_class_instance.print_args()

输出:

>>> python3 test.py
test_1
test_2
test_3

推荐阅读