def add():
import add_coffee_record
def show():
import show_coffee_records
def search():
import search_coffee_records
def modify():
import modify_coffee_records
def delete():
import delete_coffee_record
def main():
num=input('\nEnter the number on the menu: ')
while num != '6':
if num == '1':
print()
add()
if num == '2':
print()
show()
if num == '3':
print()
search()
if num == '4':
print()
modify()
if num == '5':
print()
delete()
num=input('\nEnter the number on the menu: ')
main()
当我运行FIRST输入时,它会调用函数和导入文件。但是当我提出另一个请求时,它只是再次要求我输入。它只是永远循环。我想要它,如果我要求它显示我的咖啡10次,它会在输出中显示10次。不是这个"有一次,它关闭"废话。任何帮助的人都将非常感激。这是一个混乱的输出示例:
Enter the number on the menu: 2
Description: Thanksgiving Blend
Quantity: 300.0
Description: Christmas Blend
Quantity: 100.0
Description: French Blend
Quantity: 200.0
Description: Espresso
Quantity: 600.0
Enter the number on the menu: 2
Enter the number on the menu: 2
Enter the number on the menu:
答案 0 :(得分:2)
你在滥用import
;它并不意味着以这种方式使用。而是取add_coffee_record.py
的内容并将它们放在函数定义中:
def add():
# contents of add_coffee_record.py go here
为您的其他功能做同样的事情。或者,在其他模块中定义函数,并在脚本顶部导入一次。
在高级别,当您编写import mymodule
时,Python执行模块并将所有新对象(变量,函数,类等)存储在类似字典的内容中。重新导入模块时,Python不需要重新执行模块,因为它已经包含了它在模块字典中定义的所有内容。这就是你所看到的:第二次,Python只使用缓存模块。
您可以通过创建一个模块来测试:
# hello.py
print("Hello! I'm in a module!")
并从另一个导入两次:
# test.py
print('First import:')
import hello
print('Second import:')
import hello
你会看到:
First import:
Hello! I'm in a module!
Second import: