On Sun, Jan 19, 2020 at 3:56 PM Steven D'Aprano <st...@pearwood.info> wrote:
> > The "fluent interface" (https://en.wikipedia.org/wiki/Fluent_interface) > is > > popular in many programming languages, including in the sort of > > "mini-language" Pandas, within portion. > > I can't speak about Pandas, but what the OP is expecting to do is not a > fluent interface. It's just method chaining. I'm not sure what you intend here: A fluent interface is normally implemented by using method chaining <https://en.wikipedia.org/wiki/Method_chaining> to implement method cascading <https://en.wikipedia.org/wiki/Method_cascading> (in languages that do not natively support cascading), concretely by having each method return this <https://en.wikipedia.org/wiki/This_(computer_programming)> ( self). While there are other things that might make a fluent interface, method chaining is by far the most commonly used approach. > result = mystring.upper().strip().center(width).encode('utf-8') > But yes, there are places in Python where "fluency" is the normal style. I was careful to say "collections" and "mutate" in my prior comments. A string is a kinda-sorta collection, but it's definitely not mutable. > A fluent interface is built on top of method chaining: you can't > (easily?) have a fluent interface without chaining, but you can have > chaining without a fluent interface. See Fowler, who came up with the > term and ought to know what he meant by it :-) > I don't really see what you mean in Fowler that would allow "non-fluent" method chaining, but I'll stipulate there's some sentence I missed or read wrong. Nowadays, the term is in more widespread use, and exactly what Fowler meant in 2005 isn't really essential. For example, I definitely think of pipes between Unix commands using the shell as a "fluent interface" (that I like very much). That's not method calls, but it is absolutely *chaining*. -- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/TZJCHW3IKQ4THTYGK3MJEVCOGMXPTFZW/ Code of Conduct: http://python.org/psf/codeofconduct/