PEP 572 introduces the assignment operator ("walrus operator").
I tried to negate a condition:
def say_empty():
return ''
if not a := say_empty():
print("empty")
else:
print("not empty")
This raises a SyntaxError
if not a := say_empty():
^
SyntaxError: cannot use assignment expressions with operator
I am wondering why this limitation was put in place.
PEP 572 explains why using the assignment in iterations is problematic (and raises SyntaxError), but I did not find anything about boolean ones.