On Thu, Sep 27, 2018 at 09:47:42PM -0400, James Lu wrote: > > I agree that this adds ambiguity where we can't be sure whether text .= > > encode('utf-8') is referring to the function or the method. We can infer > > that it *ought* to be the method, and maybe even add a rule to force > > that, but this works only for the simple cases. It is risky and error > > prone in the hard cases. > > I think it would be a good idea to treat all global name lookups as > lookups on the object on the LHS when you’re on the RHS of .=.
We would be innundated with questions and bug reports complaining that # earlier... argument = something() # later on myobj = MyClass() myobj .= method(argument) fails with AttributeError: 'MyClass' object has no attribute 'argument' and people would be right to complain. That rule would mean you couldn't use builtins or module-level names on the right hand side of the .= operator. I call that a huge misfeature. > This behavior prevents the worst mistakes and makes it very clear what > is happening. Far from preventing mistakes, it would cause them, whenever somebody intended to use a builtin or module-level object, and accidently got a completely different attribute of the target object. -- Steve _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/