在我的代码中,我有一个错误结束循环。我已经构建了这个程序来使用函数从外部文件运行命令。在函数“end”中,我创建了一个名为“end_command”的变量,它应该结束循环。
#command list
master_list = ['commands_list_1']
commands_list_1 = ['end']
#var
c_l_i = "start_up"
end_command = True
inList = [[] for _ in range(len(master_list))]
userName = "Alex"
#functions
def end ():
end_command = False
return 0;
def find_in (key):
eval(key+'()')
return 0;
#code
while (True == end_command):
c_l_i = input("<-: " + userName + " :->")
counter_c = 0
for mlist in master_list:
if (c_l_i in eval (mlist)):
inList[counter_c] = "true"
#find_in(c_l_i)
else:
inList[counter_c] = "false"
counter_c += 1
if ('true' in inList):
find_in(c_l_i)
else:
print ('command not found')
答案 0 :(得分:2)
end()
函数正在设置名为end_command
的局部变量,而不是全局变量。您需要global
声明:
def end():
global end_command
end_command = False
return 0
顺便说一下,使用eval
用户输入是非常差的设计。