似乎变量可以同时位于if __name__ == "__main__":
块的内部和外部。在这种情况下,我将文件路径变量放在if
块中。但是,如果我也将path
变量也放在if
块的外面,代码就会起作用。
def do_something(path):
print(path)
if __name__ == "__main__":
path = '/path/to/my/image.tif'
do_something(path)
是否有Python标准规定应将path
之类的变量放置在if __name__ == "__main__":
块的内部还是外部?
答案 0 :(得分:1)
Python对这两种方法都很满意,但是如果您想编写库和 可导入,可测试且将来灵活的命令行程序 进化,我的一般建议是放置所有实质性代码(除了导入 和常量)。偶尔有强 偏离该模式的原因,但我的默认方法如下所示 小例子:
# Imports.
import sys
# Constants.
DEFAULT_PATH = '/path/to/my/image.tif'
# The program's library point.
def main(args = None):
args = sys.argv[1:] if args is None else args
path = args[0] if args else DEFAULT_PATH
helper(path)
# Other functions or classes needed by the program.
def helper(path):
print(path)
# The program's command-line entry point.
if __name__ == '__main__':
main()
答案 1 :(得分:0)
这取决于。如果程序的路径是恒定的,则它可以在if块之外。但是,如果它只是输入(而不是程序的一部分),则应位于if块内