Skip to main content
 首页 » 编程设计

python之为什么需要验证 'if not set(sys.argv)'

2025年05月04日16powertoolsteam

我正在尝试理解下一个验证的第一部分。我可以安全地假设表达式“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 的任何元素。