Rustom Mody <rustompm...@gmail.com> writes: > On Saturday, June 18, 2016 at 5:34:30 PM UTC+5:30, Pete Forman wrote: >> Rustom Mody writes: >> [snip] >> >> One subtle difference between your two citations is that VB uses a >> leading dot. Might that lessening of ambiguity enable a future Python to >> allow this? >> >> class Foo: >> def .set(a): # equivalent to def set(self, a): >> .a = a # equivalent to self.a = a >> > > Chuckle! Heck Why not?! > But no I did not think of this
Why stop there? Another long standing bugbear can be addressed with this. class Foo: def .set(.a, b) # equivalent to def set(self, a): self.a = a .c += b # equivalent to self.c += b Explicitly, that is three new syntactic items. 1) . before a method name elides the first argument of self 2) . before an argument is shorthand for assign to a member 3) . before a variable in a method body replaces self. Earlier I had proposed a new use of "with" that would have changed the binding in (3) from self to something else. That was not a good idea for two reasons. Python already provides a reasonable way to achieve that, as described in the design FAQ. The second reason is that it subverts the current "with" statement which mandates its with_item to be a context expression. "as target" is optional and so syntactic discrimination is not possible. -- Pete Forman -- https://mail.python.org/mailman/listinfo/python-list