On Apr 8, 4:20 am, Bruno Desthuilliers <bruno. 42.desthuilli...@websiteburo.invalid> wrote: > Lie Ryan a écrit : > > > > > > > On 04/07/10 18:34, Bruno Desthuilliers wrote: > >> Lie Ryan a écrit : > >> (snip) > > >>> Since in function in python is a first-class object, you can instead do > >>> something like: > > >>> def process(document): > >>> # note: document should encapsulate its own logic > >>> document.do_one_thing() > >> Obvious case of encapsulation abuse here. Should a file object > >> encapsulate all the csv parsing logic ? (and the html parsing, xml > >> parsing, image manipulation etc...) ? Should a "model" object > >> encapsulate the presentation logic ? I could go on for hours here... > > > Yes, but no; you're taking it out of context. Is {csv|html|xml|image} > > parsing logic a document's logic? Is presentation a document's logic? If > > they're not, then they do not belong in document. > > Is len() a list logic ? If yes, it should belong to list !-) > > There are two points here : the first is that we (that is, at least, you > and me) just don't know enough about the OP's project to tell whether > something should belong to the document or not. period. The second point > is that objects don't live in a splendid isolation, and it's perfectly > ok to have code outside an object's method working on the object. > > wrt/ these two points, your "document should encapsulate its own logic" > note seems a bit dogmatic (and not necessarily right) to me - hence my > answer.
The 'document' in this case is an lxml Elementtree, so I think it makes sense to have code outside the object (e.g. static methods) working on the object. thanks, --Tim -- http://mail.python.org/mailman/listinfo/python-list