我正在做的事情是询问您要做什么然后再做。但是当我调用另一个文件时,它不会读取整个文件。
这是调用另一个脚本的代码
if math == "yes":
exec(open("calculator.py").read());'''
这是被称为的脚本
'''
else:
print('You have not typed a valid
operator, please run the program again.')
# Add again() function to calculate() function
again()
def again():
calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')
if calc_again.upper() == 'Y':
calculate()
elif calc_again.upper() == 'N':
print('See you later.')
else:
again()
calculate()
这是错误
Traceback (most recent call last):
File "C:\Users\cahen\Desktop\chat bot.py", line
17, in <module>
main()
File "C:\Users\cahen\Desktop\chat bot.py", line
14, in main
exec(open("calculator.py").read());
File "<string>", line 47, in <module>
File "<string>", line 32, in calculate
NameError: name 'again' is not defined
如果我自己运行Calculator.py,它就可以正常工作。只是当我从另一个混乱的脚本中调用它时。
答案 0 :(得分:0)
很明显,您尝试在定义之前调用again
函数:
'''
else:
print('You have not typed a valid
operator, please run the program again.')
# Add again() function to calculate() function
again() # <----------------- CALLED HERE
def again(): # <----------------- DEFINED HERE
calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')
if calc_again.upper() == 'Y':
calculate()
elif calc_again.upper() == 'N':
print('See you later.')
else:
again()
calculate()