pass object or use self.object?

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Thu Apr 8 04:20:55 EDT 2010


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.




More information about the Python-list mailing list