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

时间:2017-01-03 18:41:39

标签: python sys

我正在尝试理解下一次验证的第一部分。我可以安全地假设表达式'if not set(sys.argv)'总是为假吗?代码来自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")
'

2 个答案:

答案 0 :(得分:4)

你读错了。 Python select 0 while (@@Rowcount <> 0) begin update top (800) etc etc end 的优先级非常低,低于not(不是逻辑AND)。

&

应该被理解为

if not set(sys.argv) & valid_commands:

正在测试if not (set(sys.argv) & valid_commands): 是否包含集合sys.argv的任何元素。

答案 1 :(得分:2)

没有&#34;第一部分&#34;这里。在

...
const routes: Routes = [
  { path: 'page30', component: Page30Component, data: { title: 'Fun     Page'} },
  { path: 'page31/:id', component: Page31Component, data: { title:     'Another Page'} },     // <-- this route requires a param to be passed.
  { path: 'page32', component: Page32Component, data: { title: 'Some Page'} }
];

export const routing: ModuleWithProviders = RouterModule.forChild(routes);

相当于

if not set(sys.argv) & valid_commands: