python - 在 Python 中使用变量创建类的实例

标签 python

我正在尝试为我的小妹妹创建一个游戏。这是一种虚拟宠物,宠物有玩具可以玩。

我创建了一个类Toy,想创建一个函数getNewToy(name, data1, data2, data3, data4, data5)

我希望该函数创建类 Toy 的新实例,并且希望每次创建新实例时都能多次调用该函数。

根据我的经验,您创建一个实例:

class Toy:
    def __init__(self, name, data1, data2, data3, data4, data5):
        pass

myToy = Toy(myToy, 1, 2, 3, 4, 5)

然后使用类中的方法:

myToy.method1()

看到我想要拥有多个玩具的能力,每个玩具都有一个 playWith() 方法,我希望实例每次都反射(reflect) Toy 的名称一个被调用。

我希望每次调用 getNewToy(,...) 方法时实例都不同,并且实例反射(reflect)名称。

最佳答案

鉴于您的编辑,我假设您将类名作为字符串并希望实例化该类?只需使用字典作为调度程序。

class Foo(object):
    pass

class Bar(object):
    pass

dispatch_dict = {"Foo": Foo, "Bar": Bar}
dispatch_dict["Foo"]() # returns an instance of Foo

关于python - 在 Python 中使用变量创建类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2136760/

相关文章:

python - 如何克服 'ValueError: Wrong number of items passed 2, placement implies 1'错误?

python - 按字母顺序排序 URL 以下载图像

python - 旧 python 版本的 SSL 上下文

Python Proton 将二进制数据发送到 Active MQ

c++ - Python C++ 扩展中的继承

python - 这个 Python 程序中发生了什么?

python - 如何在不丢失离散值的情况下缩小图像?

python - 按所有选项划分两个不同大小的数据框

python - Jax - 批量数据类的 vmap

python - 我的系统中的 PATH 与 "os"模块中的路径不匹配