[Tutor] Declaration order of classes... why it is important?
ALAN GAULD
alan.gauld at btinternet.com
Sat Aug 29 13:44:02 CEST 2009
> What is still unclear to me, is what the staticmethods are for, though:
> since the reference to the object instance or to the class object are
> stripped away from the call, I wonder why not to use a module function
> instead.
First recall that xsstatic methods were historically the first attempt at
giving Python class methods. (They were called staticmethods because
C++ and Java define their class methods using the label 'static' )
The static method is still inside the class so it provides namespace
protection. Thus if we want to create a search class method in each
of three classes within the same module we can do so, whereas a
module function would need to take the class as an input parameter
and probably then do a if/else type switch statement to manipulate/access
the class attributes etc. Or you write 3 functions, one per class.
Neither is very OO in approach.
But a classmethod would be equally suitable, if not better.
> The only difference I can think of between the two (static method and
> module function) is that the namespaces they "live in" are different
And that is significant.
Alan G
More information about the Tutor
mailing list