I am reading Wesley Chun's "Core Python Programming" (2nd Edition) and have reached the part on static and class methods. I typed in the following to demonstrate the difference between the two methods:
>>> class TestClassMethod: ... def foo(cls): ... print 'calling class method foo()' ... print 'foo() is part of class:',cls.__name__ ... foo = classmethod(foo) ... >>> class TestStaticMethod: ... def foo(): ... print 'calling static method foo()' ... foo = staticmethod(foo) ... >>> tsm = TestStaticMethod() >>> TestStaticMethod.foo() calling static method foo() >>> tcm = TestClassMethod() >>> TestClassMethod.foo() calling class method foo() foo() is part of class: TestClassMethod >>> tcm.foo <bound method classobj.foo of <class __main__.TestClassMethod at 0xb7da0f2c>> >>> According to the author, the result for typing in 'tcm.foo' is calling class method foo() foo() is part of class: TestClassMethod Did I do something wrong or is this an error on the book's part? Intuitively, the answer I received makes more sense to me. I am still unsure of the difference of static and class methods. Can someone enlighten me? Thanks! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor