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)