因此,我对python还是很陌生,我试图将我在其中一个文件中编写的函数导入到我正在处理的另一个文件中。
这是我要从中导入功能的文件中的代码:
def print_me(x):
return 2 * x
print(print_me(5))
这是我其他文件中的代码:
from question2 import print_me
print(print_me(5))
现在,当我运行第二个文件时,答案(10)被打印两次。 我想知道为什么我的第一个文件(从中导入函数)的打印功能也被执行的原因。
答案 0 :(得分:1)
导入模块时,实际上是从该文件导入整个代码,包括print
语句和其他语句。
为此,您应该在定义print
函数的第一个文件中删除print_me
语句,或将以下代码添加到文件中:
if __name__ == "__main__":
# your code goes here
玩得开心:)
答案 1 :(得分:0)
导入文件时,将执行此文件中的每个语句。因此,def
语句和print
函数调用均被执行,一次打印“ 10”。然后,执行另一个文件中的代码,第二次打印“ 10”。
处理此问题的正确方法是将所有不应在导入时执行的代码放在此块中:
if __name__ == "__main__":
# code that should not be executed on import
这可以确保仅在运行时执行第一个文件中的代码。