2024-04-19 21:23:05 发布
网友
我在互联网上看到了许多用python编写的http服务器的例子,它们都包括
if sys.argv[1:]: port = int(sys.argv[1]) else: port = 8000
有人能给我解释一下这句话吗?谢谢
很可能,这段代码正在设置用于与发出请求的任何计算机进行通信的post。8000是默认的TCP端口,因此如果未指定端口,它将使用该端口。你知道吗
^{}是字符串列表,其中包含从命令行传入Python脚本的参数。sys.argv[0]是脚本的名称,它总是隐式传入。用户传入的参数将存储在sys.argv[1]、sys.argv[2]等中
sys.argv[0]
sys.argv[1]
sys.argv[2]
有鉴于此,代码可以解释如下:
# If there is more than 1 item in sys.argv... if sys.argv[1:]: # ...get sys.argv[1], convert it into an integer, and assign it to port port = int(sys.argv[1]) # Otherwise, assign port to 8000 else: port = 8000
sys.argv
./foo one two 3
['./foo', 'one', 'two', '3']
mylist[a:]
mylist
a
if list
port
很可能,这段代码正在设置用于与发出请求的任何计算机进行通信的post。8000是默认的TCP端口,因此如果未指定端口,它将使用该端口。你知道吗
^{} 是字符串列表,其中包含从命令行传入Python脚本的参数。
sys.argv[0]
是脚本的名称,它总是隐式传入。用户传入的参数将存储在sys.argv[1]
、sys.argv[2]
等中有鉴于此,代码可以解释如下:
sys.argv
是一个包含命令行参数的列表:如果您像这样启动程序:./foo one two 3
,列表将包含值['./foo', 'one', 'two', '3']
mylist[a:]
是列表mylist
的一部分,从索引a
到最后一个元素if list
如果列表不是空的,则为真port
如果未指定为第一个命令行参数,则设置为8000相关问题 更多 >
编程相关推荐