if __name__ == ‘__main__’

# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(” “)
# 翻转字符串
# 假设列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords=inputWords[-1::-1]
# 重新组合字符串
output = ‘ ‘.join(inputWords)
return outputif __name__ == “__main__”: input = ‘I like runoob’
rw = reverseWords(input)
print(rw)
而 Python 则有不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。而实际上在导入的时候,有一部分代码我们是不希望被运行的。
说了这么多返回上面的例子还是不太懂!
我们看下面的例子:
有个文件rzl.py,内容如下:
print(“PI:”,PI)
main()
再来一个文件,rmj.py用于计算圆的面积,这个文件里面需要用到rzl.py中的PI变量,那么我们从rzl.py中把PI变量导入到rmj.py中:
return PI*(banjing**2)
def main():
print(“圆面积:”,rmj(2))
main()
运行rmj.py输出结果为:
PI:3.14
圆面积:12.56
print(“PI:”,PI)
if __name__ == “__main__”:
main()
然后再运行rmj.py输出结果为:
圆面积:12.56
然后再运行rzl.py输出结果为:
PI:3.14
这才我们需要的结果。
if __name__ == '__main__'
就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 __name__
的值。__name__
是内置变量,用于表示当前模块的名字。if __name__ == '__main__'
我们简单的理解就是: 如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。转载请注明:XAMPP中文组官网 » Python 中的 if __name__ == ‘__main__’ 该如何理解