我正在尝试从列表中导入模块。这将允许更轻松地编辑导入的模块,更清晰的错误消息以及更好的错误处理。这基本上是我想要做的:
imports = ['sys', 'itertools', 'datetime', 'os']
for x in imports:
try:
import x
print "Successfully imported ", x, '.'
except ImportError:
print "Error importing ", x, '.'
Run Code Online (Sandbox Code Playgroud)
这里的问题是它尝试导入x,而不是应该包含的值x。我意识到要从列表中导入,可以执行以下操作,但是我看不到任何处理错误的方法:
imports = ['sys', 'itertools', 'datetime', 'os']
modules = map(__import__, imports)
Run Code Online (Sandbox Code Playgroud)
有没有办法将错误处理与此方法集成在一起,还是应该尝试其他方法?
我正在尝试使用 TKinter 制作一个表单,该表单从一个/多个条目小部件获取信息并将它们用作文本小部件的值。例如,这可以工作:
import Tkinter
from Tkinter import *
top = Tk()
e1 = Entry(top)
e2 = Entry(top)
t = Label(top, text = e1.get() + e2.get())
e1.pack()
e2.pack()
t.pack()
top.mainloop()
Run Code Online (Sandbox Code Playgroud)
问题是这不会自动更新。我知道可以使用按钮来完成,但我希望在用户输入 Entry 小部件时在 Label 小部件中计算/更新信息。最好的做法是什么?当程序进入 top.mainloop() 并且不退出时,while 循环的以下实现不起作用:
import Tkinter
from Tkinter import *
top = Tk()
e1 = Entry(top)
e2 = Entry(top)
t = Label(top, text = e1.get() + e2.get())
e1.pack()
e2.pack()
while True:
t = Label(top, text = e1.get() + e2.get())
t.pack()
top.mainloop()
Run Code Online (Sandbox Code Playgroud)
先感谢您。六