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

18 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)
Run Code Online (Sandbox Code Playgroud)

然后使用类中的方法:

myToy.method1()
Run Code Online (Sandbox Code Playgroud)

因为我希望能够拥有多个玩具,每个玩具都有一个playWith()方法,我希望实例能够反映Toy每次调用一个玩家的名称.

我希望每次调用方法getNewToy(,...)和实例以反映名称时实例都不同.

Das*_*Ich 17

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

class Foo(object):
    pass

class Bar(object):
    pass

dispatch_dict = {"Foo": Foo, "Bar": Bar}
dispatch_dict["Foo"]() # returns an instance of Foo
Run Code Online (Sandbox Code Playgroud)


Tob*_*obu 13

如果你还没有找到它,那么请参阅Python关于面向对象编程的章节.

以下是一些示例,滚动到BankAccount.


您可以直接调用类来创建实例.参数传递给__init__方法.

class Tamago(object):
    def __init__(self, name):
        self.name = name

imouto = Tamago('imouto')
oba = Tamago('oba')
oba.name # 'oba'
imouto.name # 'imouto'
Run Code Online (Sandbox Code Playgroud)