Python导入模块时如何屏蔽非目标代码,仅输出目标函数结果?
只让Python脚本输出指定内容的解决办法
你的问题出在导入file1模块时,模块顶层的print("34343433")会被自动执行,所以运行file2.py时会额外输出这段内容。可以通过以下方式解决:
方法一:使用if __name__ == "__main__":保护顶层代码
修改file1.py,把不需要在导入时执行的代码放到这个判断块里:
def print_hello(): print("Hello") if __name__ == "__main__": # 只有直接运行file1.py时才会执行这段代码 print("34343433")
这样当file1被file2导入时,__name__的值是"file1",不会进入这个判断块,也就不会输出34343433;如果直接运行file1.py,__name__等于"__main__",依然会输出34343433,保留了原模块的独立运行功能。
方法二:直接移除不需要的顶层代码
如果print("34343433")只是测试代码,不需要保留,直接删除这行即可,修改后的file1.py:
def print_hello(): print("Hello")
修改完成后,运行file2.py就只会输出Hello了。
内容的提问来源于stack exchange,提问作者tuan anh
相关产品推荐
相关产品推荐

