2016-02-07 45 views
1

所以在我file1.py,我有这样的:导入功能在另一个文件

def run(): 
    # Do something 

print "Hi" 

现在我想在另一个文件中使用函数run()

from file1.py import run 

但是,当我执行其他文件时,它还打印Hi。我如何压制这一点?

回答

2

if __name__ == "__main__"子句中添加print "Hi"

当python导入模块时,它执行其中包含的代码以构建模块名称空间。如果将模块作为主脚本运行,__name__将被分配到__main__,并且if子句中的代码将被执行。

既然你没有运行该脚本作为主脚本__name__被分配到模块__name__(在这种情况下file1),因此本次测试将不会成功和print语句是不会得到执行。

def run(): 
    # Do something 

if __name__ == "__main__": 
    print "Hi" 
0

,如果你不想被打印嗨,只需从file1.py

删除,如果你想在运行时(要打印喜)被调用的,那么它属于运行它缩进()函数。

1

你应该包括的功能在此之后:

这个运行程序

如果主要 == “”:#之前和之后的 '主' 和 '名'有两个under_scores! 打印“嗨”等...