Python 使用变量函数调用调用类的函数
我试图从一个类中调用一个函数,该类的名称将根据实例化的敌人类型而变化。我怎样才能做到这一点 我的尝试是:Python 使用变量函数调用调用类的函数,python,Python,我试图从一个类中调用一个函数,该类的名称将根据实例化的敌人类型而变化。我怎样才能做到这一点 我的尝试是:AssignClass.[self.Class](self) 但很明显,辛塔克斯没有任何意义 class Creature: def __init__(self, Name, Class): self.Name = Name self.Class = Class # Using a variable function call
AssignClass.[self.Class](self)
但很明显,辛塔克斯没有任何意义
class Creature:
def __init__(self, Name, Class):
self.Name = Name
self.Class = Class
# Using a variable function call to remove
# the need for a ton of 'if' statements
AssignClass.[self.Class](self)
# Basically automate doing this:
if self.Class = "Orc":
AssignClass.Orc(self)
elif self.Class = "Wizard"
AssignClass.Wizard(self)
class AssignClass:
def Orc(Creature):
Creature.Class='Orc'
Creature.Health=100
Creature.Mana=0
def Wizard(Creature):
Creature.Class='Wizard'
Creature.Health=75
Creature.Mana=200
Evil_Wizard = Creature("Evil Wizard", "Wizard")
玩了一会儿,发现我可以用eval来做这个。(安全,因为此处不能添加用户输入)
玩了一会儿,发现我可以用eval来做这个。(安全,因为此处不能添加用户输入)
您可以使用检索类方法,然后只传递您的
生物
实例,例如:
class Creature:
def __init__(self, Name, Class):
self.Name = Name
self.Class = Class
getattr(AssignClass, Class)(self)
顺便说一句,这绝对不是Python类的推荐样式,最起码的一点是,你在你的
赋值类
中跟踪生物
类(它本来不应该是类)。我建议您仔细阅读。您可以使用检索类方法,然后只传递您的生物
实例,例如:
class Creature:
def __init__(self, Name, Class):
self.Name = Name
self.Class = Class
getattr(AssignClass, Class)(self)
顺便说一句,这绝对不是Python类的推荐样式,最起码的一点是,你在你的
赋值类
中跟踪生物
类(它本来不应该是类)。我建议你仔细阅读《政治公众人物》第8版。我想我已经推迟学习《政治公众人物》第8版太久了。我只是为了好玩而编程,所以我所做的一切都无关紧要。谢谢你的回答。我想我已经把学习政治公众人物8推迟了很长时间了。我只是为了好玩而编程,所以我所做的一切都无关紧要。谢谢你的回答。