Bruno Desthuilliers wrote: > Boris Borcic a écrit : >> Hello Bruno, >> >> Bruno Desthuilliers wrote: >> >>> Boris Borcic wrote: >>> >>>>> Do you have any ideas? >>>> >>>> >>>> you could use a recursive generator, like >>>> >>>> def genAllChildren(self) : >>>> for child in self.children : >>>> yield child >>>> for childchild in child.genAllChildren() : >>>> yield childchild >>> >>> >>> >>> Or how to *not* address the real problem... >>> >>> Boris, using a generator may be a pretty good idea, but *not* as a way >>> to solve a problem that happens to be a FAQ !-) >>> >> >> Sorry, but I don't understand your reasoning. > > It's quite simple. The OP's problem is well-known (it's a FAQ),
This is really an oversimplification. What's the case is that his showstopper was covered by the FAQ list. The OP's "problem" is actually a stack of problems/subproblems and was presented as such. > and easy > to solve. I did consider a couple distinct ways to solve "it" while passing lists around - did you notice that the OP's code made no clear choice as to whether it wanted to pass them by reference or as return values ? That's how a generator struck me as most pythonic if you want ("In the face of ambiguity, refuse the temptation to guess"). > The righ answer to it is obviously to give a link to the FAQ > (or take time to re-explain it for the zillionth time), not to propose a > workaround. Given your usage of code simplicity in another thread as (roughly) a measure of pythonic virtue, I feel it warranted to ask why should one recognize simpler code as "the workaround" (assuming it fits the bill) ? Because it doesn't cross the FAQ, seems to be your answer... > >> How can you exclude that the OP /may/ find that a generator neatly >> solves his problem ? > > I don't exclude it, and explicitly mentioned in whole letters that, I > quote, it "may be a pretty good idea". And actually, the OP's problem is > really with default values evaluation scheme - something that every > Python programmer should know, because there are cases where you cannot > solve it with a generator-based solution !-) ... >> - and the quirks of default values being FAQ stuff don't change that. >> Sure if nobody had covered that aspect, but a couple other posters did... > > Yes, but you forgot to mention that - and I would not have post any > comment on your solution if you had explicitly mentioned the FAQ or > these other answers. At this point I recognize that our difference may very well have deep roots relating to cognitive style, educational policy, etc. Generally speaking I welcome debate on such premisses as an occasion to learn more (not so much from my contradictor than from the debate itself), but a precondition is that the partner/contradictor understands my motive (what I can't count on since the idea of learning from the debate itself is pretty typical such cognitive style divides). Besides, I don't quite have the time right now. The short form is : "I strongly disagree with you". Best, BB -- "On naît tous les mètres du même monde" -- http://mail.python.org/mailman/listinfo/python-list