Y!首先对任何拼写错误感到抱歉...我的英语不是我的主要语言...
程序说明-
所以我刚刚开始编写代码,作为一个初学者,我想用一个简单的登录名,个人信息和一个计算器来创建一个非常简单的程序。 所以流程是这样 Login()> var_list()> main_menu()(在这里您可以编辑var列表,打开计算器,注销..等等...)
问题的说明-
因此,正如我所说的,这是一个简单的程序,您登录后,将被提升为输入个人资料信息,然后该信息将显示在主菜单上 在主菜单中,选项之一是通过重新启动var_list函数来更改您的个人资料。 var list函数只会在名为profile.py的文件中创建3个变量,其中包含您的姓名,年龄和地址(请参见代码) 然后菜单导入的“ profile.py”在主菜单中显示内容 但是当我从主菜单再次运行Var_list函数时,它不会在已打印的var上刷新任何内容……它确实在“ profile.py”文件中发生了更改,但仅显示
var_list函数:
def var_list(): # register to the program || cant get it to refresh after program has started... hlp plz
on = 1
while on == 1:
print("This is just to fill out your profile")
try:
name = input("Your Name:\t")
age = int(input("Your Age:\t"))
address = input("Your address:\t")
on = 0
#________file_write__________
f = open("profile.py", "w")
f.write("name = ")
f.write("\"")
f.write(name)
f.write("\"")
f.write("\nage = ")
f.write("\"")
f.write(str(age))
f.write("\"")
f.write("\naddress = ")
f.write("\"")
f.write(address)
f.write("\"")
f.close()
except ValueError:
print("invalid syntax")
显示菜单功能:
def display_menu(): # Display menu
on=1
while on==1:
from profile import name, age, address
print("\nHello", name, age, "from", address,
"\t\t• %s seconds •" % (int(time.time()) - int(start_time)),"\n")
print("1 • Logout")
print("2 • Refresh Time")
print("3 • Edit Profile") (this is the var_list function)
print("4 • simple calc")
print("5 • Exit")
on=0
希望我提供了足够的信息来调试此... 任何帮助都感激不尽!谢谢!
答案 0 :(得分:0)
默认情况下,重新导入模块实际上不会重新编译它。不过,您可以使用importlib
部分修复该问题:
import profile
... # in the meantime, profile.py is modified
from importlib import reload
reload(profile)
,以便您可以使用限定的变量名(profile.name
,profile.age
,profile.address
)。我不确定您的示例中是否可以使用from profile import ...
语法来实现该功能,但这似乎是一个小麻烦。