Python 变量应该位于if“name”的内部还是外部__主要内容:块
似乎变量可以位于Python 变量应该位于if“name”的内部还是外部__主要内容:块,python,if-statement,standards,Python,If Statement,Standards,似乎变量可以位于if uuuu name_uuu==“uuu main_uuu”:块的内部和外部。在这种情况下,我在if块中放置一个文件路径变量。但是,如果我将path变量也放置在if块之外,代码也会工作 def do_something(path): print(path) if __name__ == "__main__": path = '/path/to/my/image.tif' do_something(path) 是否有任何Python标准规定,如果uu
if uuuu name_uuu==“uuu main_uuu”:
块的内部和外部。在这种情况下,我在if
块中放置一个文件路径变量。但是,如果我将path
变量也放置在if
块之外,代码也会工作
def do_something(path):
print(path)
if __name__ == "__main__":
path = '/path/to/my/image.tif'
do_something(path)
是否有任何Python标准规定,如果uuu name_uuuu==“uuu main_uuu”:块,那么像
path
这样的变量是否应该放在块的内部或外部 视情况而定。如果程序的路径为常量,则它可以位于If块之外。但是,如果它只是一个输入(而不是程序的一部分),它应该在if块中,Python对这两种方法都很满意,但是如果您想编写库和
可导入、可测试且灵活的命令行程序
在进化论中,我的一般建议是将所有实质性代码(导入除外
函数或方法的内部。偶尔会有强烈的
有理由偏离这种模式,但我的默认方法如下
小小的例子:
# Imports.
import sys
# Constants.
DEFAULT_PATH = '/path/to/my/image.tif'
# The library's entry 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()
如果路径是固定的,那么给路径变量一个全局范围通常是一个好的做法。这并不重要。Python有函数作用域而不是块作用域,因此它是一个全局变量,即使您在if
块中定义它。