1

我有一个 Python 程序,其中一个函数导入另一个脚本并运行它。但是该脚本仅在第一次调用该函数时运行。

def Open_Generator(event): import PasswordGenerator

有小费吗?

*使用 tkinter 窗口中的按钮调用该函数

4

1 回答 1

2

这是设计使然。您应该只导入一次模块。尝试多次导入模块将导致 Python 从缓存中重新获取模块对象,但这不会导致模块的代码再次执行。

大多数设计良好的模块在您导入它们时不会立即执行任何操作,或者至少不会执行任何明显可见的操作。一般来说,如果你想让一个模块工作,你需要调用它的一个函数。

我猜你的PasswordGenerator模块在文件级范围内有一些代码。换句话说,它有不在函数内部的代码。尝试将该代码移动到一个函数中。然后你可以从Open_Generator.

import PasswordGenerator

def Open_Generator(event):
    my_password = PasswordGenerator.generate_password()
于 2019-02-26T16:50:41.190 回答