Python 为什么需要验证“如果未设置(sys.argv)”?

Python 为什么需要验证“如果未设置(sys.argv)”?,python,sys,Python,Sys,我正在努力理解下一次验证的第一部分。我可以安全地假设表达式“if not setsys.argv”总是False吗?代码来自 根据,如果命令使用'-c'选项运行,argv[0]将设置为字符串'-c'。这仍然是一个非空集。例如: python -c ' import sys print(sys.argv[0]) if not set(sys.argv): print("empty") else: print("non-empty") ' 你看错了。Python的优先级并不是很低,

我正在努力理解下一次验证的第一部分。我可以安全地假设表达式“if not setsys.argv”总是False吗?代码来自

根据,如果命令使用'-c'选项运行,argv[0]将设置为字符串'-c'。这仍然是一个非空集。例如:

python -c '
import sys
print(sys.argv[0])
if not set(sys.argv):
    print("empty")
else:
    print("non-empty")
'

你看错了。Python的优先级并不是很低,低于&这是不符合逻辑和逻辑的

if not set(sys.argv) & valid_commands:
应理解为

if not (set(sys.argv) & valid_commands):

正在测试sys.argv是否包含设置有效命令的任何元素。

您读错了。Python的优先级并不是很低,低于&这是不符合逻辑和逻辑的

if not set(sys.argv) & valid_commands:
应理解为

if not (set(sys.argv) & valid_commands):

它正在测试sys.argv是否包含设置有效_命令的任何元素。

这里没有第一部分。

if not set(sys.argv) & valid_commands:
相当于

if not (set(sys.argv) & valid_commands):

这里没有第一部分。

if not set(sys.argv) & valid_commands:
相当于

if not (set(sys.argv) & valid_commands):

不,您不能安全地假定表达式if not setsys.argv始终为false。如果使用Python C API调用脚本,您的程序可能先前已清除sys.argv.sys.argv,也可能为空。否,您不能安全地假定表达式if not setsys.argv始终为false。如果您使用Python C API调用脚本,则您的程序可能先前已清除sys.argv.sys.argv也可能为空。