我见过许多在互联网上用python编写的http服务器的例子,它们都包括
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
任何人都可以向我解释这一行吗?感谢
答案 0 :(得分:1)
sys.argv
是一个字符串列表,其中包含从命令行传递到Python脚本的参数。 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
答案 1 :(得分:1)
sys.argv
是一个包含命令行参数的列表:如果你启动这样的程序:./foo one two 3
,列表将包含值['./foo', 'one', 'two', '3']
mylist[a:]
是列表mylist
的一部分,从索引a
开始直到最后一个元素if list
为真port
如果未指定为第一个命令行参数,则设置为8000 答案 2 :(得分:0)
猜测一下,这段代码设置的帖子用于与提出请求的计算机进行通信。 8000是默认的TCP端口,因此如果没有指定端口,它将使用它。