这是我的问题:在阅读有关python网络编程的书籍时,我偶然发现了这段代码:
import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
if sys.argv[1:] == ['server']:
s.bind('127.0.0.1', PORT)
...
...
等等。我的问题是if语句是否检查sys.argv列表中的任何元素(第一项除外)是否与'server'相等。我尝试在IDLE for Python 3.2中执行此操作,但它不起作用。本书适用于python 2.7,所以我也试过了,但它仍然有用。
答案 0 :(得分:3)
不,它检查slice 1:
形成的列表是否等于列表['server']
。
答案 1 :(得分:3)
sys.argv[0]
是程序的名称,它被剥离。 sys.argv[1:]
- 提供给程序的所有命令行参数。
if
语句检查您的脚本只收到一个参数server
。
答案 2 :(得分:3)
不,这在任何版本的Python中都不起作用。唯一能做的就是检查从位置1开始的sys.argv
只有一个元素,即'server'
。
答案 3 :(得分:2)