[Python-ideas] "Immutable Builder" Pattern and Operator
Soni L.
fakedme+py at gmail.com
Mon Jan 23 11:07:50 EST 2017
More information about the Python-ideas mailing list
Mon Jan 23 11:07:50 EST 2017
- Previous message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Next message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 23/01/17 01:52 PM, Gerald Britton wrote: > > > > [snip] > > >I propose `x .= y` -> `x = x . y`, for any `y`. > > [snip] > > I think you mean "any y that is a member of x" > Since it desugars into `x = x.y`, you can literally use anything for `y`. x .= __call__().whatever().unwrap() * 3 is equivalent to x = x.__call__().whatever().unwrap() * 3 and x .= 1 is equivalent to x = x.1 which is equivalent to SyntaxError: invalid syntax > Also, note that this syntax means that x will be rebound to the > result of calling x.y, whatever that is (frequently, None, for > mutating methods) > > In general, you can't count on methods to return references to > their instances, even though it's handy for fluent coding, so this > side effect may be unexpected to some > This is why it's for use with **immutable** objects. > That's a problem with your original example: > > >long_name = mkbuilder() > > >long_name = long_name.seta(a) > > >long_name = long_name.setb(b) > > >y = long_name.build() > > What do the methods seta and setb return? If they don't return > "self" you've got a problem. I think. > They don't return self. Ever. The value bound to long_name is immutable, like an integer. They return a new instance. > FWIW why can't you just write: > > x.y > > or for your example: > > long_name.seta(a) > > ? > > See the IRC bot builder example, it should be more clear. (It's about forking the builder.) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170123/a311abee/attachment.html>
- Previous message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Next message (by thread): [Python-ideas] "Immutable Builder" Pattern and Operator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list