> 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. See it this way: *if* you for some reason put a method into an enclosing context - isn't it worth having a reference to that? > I can call a static or class method through either the class OR any > instance of it. I've never designed a method that took advantage of > the class name except in cases where I needed to extend a super class > *but* even in this case, I didn't use the enclosing class name... > > Whats the deal with class methods, why use them over anything else? > What does a class method accomplish in at least one line shorter than > anything else? Does it help reduce duplication or typing? I am at a > lost for words that can shed at least *one* good reason to use them. > > What is the one greatest reason to use them? A little syntax and > explanation can go a long long way. I am failing to understand them so > any help is really appreciated here! There is not one greatest reason. They have their uses as e.g. factory-methods for instances of the class. Or as e.g. registering functions for notifications amongst instances of the class. In which case writing class Foo: @classmethod def register(cls, listener): cls.LISTENERS.append(listener) is much more robust because you could rename Foo the way you like - register won't be affected. Diez -- http://mail.python.org/mailman/listinfo/python-list