我试着用一个函数作为值的字典,但是
NameError: name 'oak' is not defined
在显示其他内容之前停止执行。你知道吗
这是dispatcher的类:
from hab_oak import Oak
from pokemon import Pokemon
from hab_brock import GimnasioBrock
class Juego(object):
habs = {
'Oak' : oak
}
def __init__(self):
oak = Oak()
maproom, pok = oak.execution()
self.Pokemon = pok
dispatcher(Juego.habs.get(maproom), self.Pokemon)
def dispatcher(command, arg):
send(habs[command](arg))
def oak(self, pokemon):
GimnasioBrock(pokemon)
我很确定下一个类Oak并没有给出错误,但它是在Juego中实例化的
from sys import exit
from random import randint
from pokemon import Pokemon
from hab_brock import GimnasioBrock
class Oak(object):
def execution(self):
print "Bienvenido, soy Oak. Elige un pokemon."
print "Puedes elegir Charmander, Squirtle o Bulbasaur:"
pokemon_elegido = raw_input("> ")
if (pokemon_elegido == "Charmander"):
pokemon = Pokemon("Charmander", 20, 5)
elif (pokemon_elegido == "Bulbasaur"):
pokemon = Pokemon("Bulbasaur", 20, 5)
elif(pokemon_elegido == "Squirtle"):
pokemon = Pokemon("Squirtle", 20, 5)
print "Te enfrentaras a Brock."
return "Oak", pokemon
您将在类定义函数之前为函数设置字典值。如果要将函数存储在类变量中,请将
oak()
更改为静态方法,或将函数设置为__init__()
中的值静态方法示例:
初始化示例:
相关问题 更多 >
编程相关推荐