Automatic Generation of Python Class Files
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Tue Oct 23 18:42:46 EDT 2007
Steven Bethard a écrit :
> Bruno Desthuilliers wrote:
>
>> Steven Bethard a écrit :
>>
>>> Bruno Desthuilliers wrote:
>>>
>>>>> I guess as long as your documentation is clear about which
>>>>> attributes require computation and which don't...
>>>>
>>>>
>>>> Why should it ?
>
> [snip]
>
>> I believe we simply disagree on weither properties should be used when
>> it makes sens (from a semantic POV, which doesn't prevent common sens,
>> thanks) or if they should be restricted to refactoring-life-saver. Now
>> since the second use implies that some attributes-looking properties
>> of an object may not be what they looks like - and even worth, may
>> suddenly become (a little bit) more costly without client code being
>> warned - I don't see what's your problem with the first one.
>
>
> I said those kind of expectation violations should be documented, and
> you said "Why should it?" I gather you really only meant the "Why
> should it?" in the situation that the computation is extremely minimal.
Did you failed to spot some kind of pattern in my previous posts ?-)
More seriously: I do assume that what looks like an attribute will not
require *heavy* computation - a bit more than 'extremely minimal' is ok
for me, but we may not have the same definition of 'extremely minimal'.
And FWIW, I do assume too that computation-heavy functions will be
either obvious (either from the domain and/or wrt/ what I do pass as
arguments - ie, I expect that sorting a 10K items list with a custom cmp
callback will be heavier that naturally sorting a 10 words list) or
documented as such. Else, I just write my code and, if and when I have a
real problem, I profile the whole thing... strange enough, but so far
it seems to work just fine.
> I can understand that, but I'd still like it documented for any objects
> I use.
There are quite a lot of things I'd like to see documented - but
hopefully I'm mostly working with OSS, so I usually use the source when
I need a very exact and detailed documentation !-)
Now how does your desire for documentation imply that "if you're
creating a class for the first time, it should *never* use property()" ?
I still wonder...
>> Ho, and wrt/ training and expectations, I'm afraid you have to live
>> with the fact that computed attributes (either properties and custom
>> descriptors) are alreay widely used. FWIW, may I remind you that a
>> method is actually a callable returned by a computed attribute ?-)
>
>
> Yep. And it's documented. ;-)
How many Python users ever bothered to read that part of the doc ? How
many are not even aware of this ?
More information about the Python-list
mailing list