Could you elaborate on what are the complaints you've heard about "variable assigning, mutable variables, lambdas"? Just curious.
# Am I defining foo for the first time or am I mutating
foo = "stuff"
Python if I recall in the OOP sense combats this with requiring self.foo but this is not the case with other forms of lexical scoping such as loops with in loops etc.And of course you can't define constants.
IIRC for lambdas its that they can't span multiple lines and I believe they are getting removed (I'm not a python 3 expert)?