aut*_*ier 0 python function pycharm
我试图使用下面的代码调用同一目录中另一个 py 文件“file2.py”中定义的函数“myfunction()”
from file2 import *
myfunction()
Run Code Online (Sandbox Code Playgroud)
不幸的是,它执行了我的函数两次。import 语句也在执行该函数。关于如何避免这种情况有什么见解吗?
可能你正在你的file2.py函数内部调用myfunction()
当你这样做时
from file2 import *
Run Code Online (Sandbox Code Playgroud)
您正在加载每个定义(类、def 等),当然还有该 .py 中调用的每个函数。
为了避免这个问题,您可以在此范围内调用 file2.py 中的函数 myfunction() :
if __name__ == '__main__':
myfunction()
Run Code Online (Sandbox Code Playgroud)
这样导入时就不会执行,只有直接执行file2.py时才会执行:
python3 file2.py
Run Code Online (Sandbox Code Playgroud)