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