> > An instance method works on the instance > > A Static method is basically a function nested within a class object > > A class method is overkill? > > If anything, a static method is overkill... > class Foo: > > [EMAIL PROTECTED] > def register(cls, listener): > cls.LISTENERS.append(listener)
When I learned about static methods, I learned they're a way to tightly couple some functionality with a class without tying the functionality to any of the instances. I see them as nothing more than a design decision. To me they make some sense. Other than a methods signature (classmethod(cls, l) and a staticmethod(l)) a class method does anything that a static method does and gets the CLS reference for FREE? Is this why a static method is considered to be overkill? In other words, either one can be called from either the class or the instance and both work pretty much the same *but* only the class method includes the class for reference and the static method does not? The only real difference I see between an instance and either a class or static method is the whole bound/unbound thing. Otherwise, even an instance can do what the others do *just* the instance method can only make those calls through an instance and not the class. Instance methods make the most sense. A static method makes sense too *but* I can see how a class method not only does what a static method does but how a class method *also* gets the cls reference for free. Am I correct? -- http://mail.python.org/mailman/listinfo/python-list