使用方法:
Python
代码
1.class A(object):
2. def foo(self,x):
3. #
类实例方法
4. print "executing foo(%s,%s)"%(self,x)
5.
6. @classmethod
#
声明类方法
7. def class_foo(cls,x):
8. #
类方法
9. print "executing class_foo(%s,%s)"%(cls,x)
10.
11. @staticmethod
#
声明静态方法
12.
def static_foo(x):
13. #
静态方法
14. print "executing static_foo(%s)"%x
调用方法:
Python
代码
1.a = A()
2.a.foo(1)
: executing foo
(<__main__.A object at 0xb77d67ec>,1)
3.
4.a.class_foo(1)
//executing class_foo(,1)
5.A.class_foo(1)
//executing class_foo(,1)
6.
7.a.static_foo(1)
//executing static_foo(1)
8.A.static_foo(1) //executing static_foo(1)
区别:
类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用
类方法的隐含调用参数是类,
而类实例方法的隐含调用参数是类的实例,
静态方法没有隐
含调用参
数
按照惯例
,
类方法的第一个形参被命名为
cls.
任何时候定义类方法都不是必须的
(类方法能实
现的功