Python 中的菜单功能和 类
Menu Function and Classes in Python
class Character:
def __init__(self, name,):
self.name = name
def help (self):
print (menu.keys())
def name(self):
print ("Hast du schon vergessen ? ")
c = Character
c.name = input("Wie heißt du denn ? ")
print ("Help, wenn du Hilfe brauchst")
menu ={"help":Character.help,
"name":Character.name}
#This function allows you call up the main menu at any point in the game.
while True :
line = input(">")
args = line.split()
if len(args) < 4:
Befehl_vorhanden = False
for c in menu.keys():
if args[0] == c[:len(args[0])]:
menu[c](c)
Befehl_vorhanden = True
break
if not Befehl_vorhanden:
print ("ich verstehe dich nicht.")
感谢其他 stack overflow 用户的帮助,我能够得到我的代码 运行。我为我的游戏创建了一个可以随时调用的菜单。但是,它不允许我打印任何文本。例如,如果我输入 "name",它会给我。
TypeError: 'str' 对象不可调用
我什至尝试过在没有菜单的情况下将其用作基本功能。但是,我似乎无法让这段代码工作。
如有任何建议,我们将不胜感激。
提前致谢,
克里斯
您的线路:
c.name = input("Wie heißt du denn ? ")
将方法 Character.name 分配给一个字符串,因此您在行 menu[c](c)
上得到 'str' object not callable because menu[c]
is Character.name
.
更新:
这个程序可能更接近您正在寻找的程序:
class Character:
def __init__(self, name):
self.namen = name
def help (self):
print (menu.keys())
def name(self):
print ("Hast du schon vergessen ? ", self.namen)
c = Character(input("Wie heißt du denn ? "))
print ("Help, wenn du Hilfe brauchst")
menu ={"help":c.help,
"name":c.name}
#This function allows you call up the main menu at any point in the game.
while True :
line = input(">")
args = line.split()
if len(args) < 4:
if args[0] in menu:
k = args[0]
menu[k]()
else:
print ("ich verstehe dich nicht.")
请注意我如何更改 __init__()
以执行:self.namen = name
因为您的版本 也 覆盖了 def name(self):
的声明。
class Character:
def __init__(self, name,):
self.name = name
def help (self):
print (menu.keys())
def name(self):
print ("Hast du schon vergessen ? ")
c = Character
c.name = input("Wie heißt du denn ? ")
print ("Help, wenn du Hilfe brauchst")
menu ={"help":Character.help,
"name":Character.name}
#This function allows you call up the main menu at any point in the game.
while True :
line = input(">")
args = line.split()
if len(args) < 4:
Befehl_vorhanden = False
for c in menu.keys():
if args[0] == c[:len(args[0])]:
menu[c](c)
Befehl_vorhanden = True
break
if not Befehl_vorhanden:
print ("ich verstehe dich nicht.")
感谢其他 stack overflow 用户的帮助,我能够得到我的代码 运行。我为我的游戏创建了一个可以随时调用的菜单。但是,它不允许我打印任何文本。例如,如果我输入 "name",它会给我。
TypeError: 'str' 对象不可调用
我什至尝试过在没有菜单的情况下将其用作基本功能。但是,我似乎无法让这段代码工作。
如有任何建议,我们将不胜感激。
提前致谢,
克里斯
您的线路:
c.name = input("Wie heißt du denn ? ")
将方法 Character.name 分配给一个字符串,因此您在行 menu[c](c)
上得到 'str' object not callable because menu[c]
is Character.name
.
更新:
这个程序可能更接近您正在寻找的程序:
class Character:
def __init__(self, name):
self.namen = name
def help (self):
print (menu.keys())
def name(self):
print ("Hast du schon vergessen ? ", self.namen)
c = Character(input("Wie heißt du denn ? "))
print ("Help, wenn du Hilfe brauchst")
menu ={"help":c.help,
"name":c.name}
#This function allows you call up the main menu at any point in the game.
while True :
line = input(">")
args = line.split()
if len(args) < 4:
if args[0] in menu:
k = args[0]
menu[k]()
else:
print ("ich verstehe dich nicht.")
请注意我如何更改 __init__()
以执行:self.namen = name
因为您的版本 也 覆盖了 def name(self):
的声明。