pass object or use self.object?

Tim Arnold a_jtim at bellsouth.net
Thu Apr 8 14:25:50 EDT 2010


On Apr 8, 4:20 am, Bruno Desthuilliers <bruno.
42.desthuilli... at 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



More information about the Python-list mailing list