前言
来自自己的笔记, 搬运过来
正文如下
首先, 如果需要执行一个模块, 则该模块文件中必须要定义if __name__ == __main__:来调用需执行的方法(若无则执行无任何输出)
如我定义了一个doTest.py文件, 存放路径D:/new-company/work/python/idle/doTest.py
其代码内容如下
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print(b, end=' ')
a, b = b, a+b
print()
def fib2(n): # return Fibonacci series up to n
result = []
print(n)
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result
if __name__ == "__main__":
import sys
print(sys.argv)
print(sys.argv[0])
listResult = fib2(int(sys.argv[1]))
print(listResult)
那么我在cmd中进行以下测试在doTest.py的文件夹中执行
D:\new-company\work\python\idle>python3 doTest.py 3
['doTest.py', '3']
3
[1, 1, 2]
D:\new-company\work\python\idle>在别的目录进行执行
C:\Users\4399-3046>python3 D:/new-company/work/python/idle/doTest.py 4
['D:/new-company/work/python/idle/doTest.py', '4']
D:/new-company/work/python/idle/doTest.py
4
[1, 1, 2, 3]
C:\Users\4399-3046>
通过上面的输出可以看到sys.argv这是个数组集合, 元素内容解释如下第一个元素为存放的为路径, 此路径为执行目录处到被执行文件目录的路径 + 被执行文件名
往后的元素存放的为执行次模块所传入的参数, 且按照顺序存放
首发来自公众号: 程序员品首发链接mp.weixin.qq.com