There's lots of fun errors you can cause with it that weren't really possible before. <br><br>For example, you can assign a variable to have the same name as the function being called, which could potentially be problematic. <br><br>Example: <br><br>funcname(funcname := some value).<br><br>I was also experimenting with function attributes, and if you do the same thing as the example above that has the same attribute names things can get funky. <br><br>class TestClass:<br>              def __init__(self, x):<br>                        self.x = x<br>              def __repr__(self):<br>                        return f"TestClass({self.x})"<br><br>Then defining a function with a function attribute of the same name<br> <br>def test(value):<br>               test.x = value<br><br>Then, instantiate a TestClass object to a variable name 'test' while also passing it to the test function with a walrus operator. <br><br>test(test := TestClass(5))<br><br>This causes a fun circular recursion error whenever the <i>_repr_</i> method gets called or whenever self.x is directly accessed. <br><br>Of course you'd have to be pretty silly to do this, and I have no idea why someone would be abusing function attributes this way, but I can see how this could introduce errors that are not as easily handled yet, and someone being dumb could cause some serious problems if they aren't paying attention. Of course 9 months later I'm not sure if it's caught on enough to even cause any problems at this point, but I think it's existence still merits discussion.