On Fri, 29 Apr 2016 10:48 am, Gregory Ewing wrote: > MRAB wrote: > >> Is it worthy of being in the Zen of Python? > > +1. Maybe something along the lines of: > > Dunder methods are for defining, not calling. > Unless you're a dunderhead[1]. > > [1] Meant in the sense of an enthusiast, cf. gearhead.
I think that the advice to not call dundermethods directly is excellent advice, but it doesn't belong in the Zen. Look at the Zen: it's all pretty abstract: Beautiful is better than ugly. Explicit is better than implicit. etc. There's very little[1] concrete advice in the way of specificities such as: - don't use floats for money; - use namedtuple for the equivalent of a C struct or Pascal record; - composition should be preferred over inheritance; etc. "Don't use dunders" is much closer to the second, more specific type of advice which doesn't really fall into the Zen's bailiwick. Better suited for the Zen would be: "Not everything needs to be a one-liner." which is nicely abstract and also completely useless for deciding which things should and shouldn't be, as good koans ought to be. [1] By which I mean none. -- Steven -- https://mail.python.org/mailman/listinfo/python-list