Python:如何使用字典来调用方法(字典中的值)以基于不同函数中的用户输入(字典中的键)运行?
到目前为止,我所拥有的:Python:如何使用字典来调用方法(字典中的值)以基于不同函数中的用户输入(字典中的键)运行?,python,python-3.x,dictionary,lookup-tables,Python,Python 3.x,Dictionary,Lookup Tables,到目前为止,我所拥有的: def run_A(): # code... def run_B(): # code... def run_C(): # code... inputDict = {'a': run_A, 'b': run_B, 'c': run_C, 'q': False} # q for quit program def userChoice(self): y = True while y: choice = input("a.
def run_A():
# code...
def run_B():
# code...
def run_C():
# code...
inputDict = {'a': run_A, 'b': run_B, 'c': run_C, 'q': False} # q for quit program
def userChoice(self):
y = True
while y:
choice = input("a. run A\nb. run B\nc. run C\nq. Quit").lower()
self.inputDict[choice]
我这里的问题是,程序允许用户输入他们的选择,但函数将根据字典调用(不会运行),程序只会不断询问用户的选择。
self.inputDict[choice]
将只从dict获取函数,而不会调用它,因此您可能需要替换self.inputDict[choice]
withself.inputDict[choice]()
如果函数是类的一部分,请在此处编写完整的代码。从您的问题来看,您似乎有两个问题:字典调用没有运行函数,因为它检索函数名。这可以通过以下关于“eval()”的答案来解决。但你们的第二个问题是“程序只会不断询问用户的选择”,若你们想解决这个问题,我们需要知道你们想要什么。是否希望程序只询问一次(删除,同时删除)?你想让它在用户每次输入时都问一次吗?我想:应该是self.inputDict[choice](self)
def run_A():
print("A")
# code...
def run_B():
print("B")
# code...
def run_C():
print("C")
# code...
inputDict = {'a': run_A, 'b': run_B, 'c': run_C, 'q': False} # q for quit program
def userChoice(self):
y = True
while y:
choice = input("a. run A\nb. run B\nc. run C\nq. Quit").lower()
if choice =="q":
y = False
else:
self.inputDict[choice]()