我正在尝试理解下一个验证的第一部分。我可以安全地假设表达式“if not set(sys.argv)”始终为 False 吗?代码来自Ironic Project .
if not set(sys.argv) & valid_commands:
根据docs ,如果使用“-c”选项运行命令,则 argv[0] 设置为字符串“-c”。这仍然是一个非空集。示例:
python -c '
import sys
print(sys.argv[0])
if not set(sys.argv):
print("empty")
else:
print("non-empty")
'
请您参考如下方法:
你读错了。 Python 的 not 的优先级非常低,低于 &(不是逻辑与)。
if not set(sys.argv) & valid_commands:
应该理解为
if not (set(sys.argv) & valid_commands):
它正在测试 sys.argv 是否包含集合 valid_commands 的任何元素。
