这是一个python脚本,它将输出发送到不同的位置,具体取决于它是以交互方式运行还是作为模块导入。
# main.py
def main():
output = "... do some processing ..."
if __name__ == "__main__":
print("sending output to stdout")
#print(output)
else:
print("sending output to file")
#write_to_file(output)
if __name__ == "__main__":
main()
根据脚本的调用方式运行不同的路径:
$ python main.py
sending output to stdout
$ python
>>> import main
>>> main.main()
sending output to file
代码按预期工作,但我觉得它可能是代码味道。我可以看到为什么单个脚本中的多个检查都是好的和坏的原因,我正在寻找关于这是否是pythonic的反馈。
#ifdef DEBUG
)if __name__ == "__main__":
语句(尽管我的搜索并不详尽。)__main__
不包含任何宣传此编码风格的示例。它只是提到它的常用方式。从文档中排除并不意味着它很糟糕,只是风格并不常见。output="file"
之类的参数传递给main()我希望这个问题对于SO来说不是太基于意见。如果您愿意,请随意引用Python的Zen来支持您的答案。我期待着您的反馈。