如果用在if语句里,只有一个条件的话,当然可以不用括号,就如我例子里那样,没用到括号。
但是加了别的运算符之后,想优于这个运算符执行,就必须用括号了,例如把例子改成:
if (m := re.match(somereg, somestr)) and len(somestr) > 8:
print(m.group(1))
:=的优先级比and低,所以这里需要加括号m才能先赋值给re对象。
否则m就会被赋值一个:=右边整个表达式执行后的布尔值。
【 在 easior 的大作中提到: 】
: 手册虽然这么说,但 := 离开括号没法用,它和括号是一体的
: 当然,我有可能理解还没有到位
--
FROM 171.221.52.*