python类方法和静态方法

python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马?
python中实现静态方法和类方法都是依赖于python的修饰器来实现的。
 
class MyClass: 
 
    def  method(self): 
           print("method") 
 
    @staticmethod 
    def  staticMethod(): 
            print("static method") 
 
     @classmethod 
     def classMethod(cls): 
           print("class method") 
 
 
大家注意到普通的对象方法、类方法和静态方法的去别了吗?
对象方法有self参数,类方法有cls参数,静态方法是不需要这些附加参数的。
在C++中是没有类方法着个概念的的

-------------------

 

coding:utf-8
class A(object):
    "This ia A Class"

    @staticmethod
    def Foo1():
        print("Call static method foo1()\n")

    @classmethod
    def Foo2(cls):
        print("Call class method foo2()")
        print("cls.__name__ is ",cls.__name__)

A.Foo1();
A.Foo2();

 

结果是:
Python code
Call static method foo1()

Call class method foo2()
cls.__name__ is  A


 

posted @ 2012-09-11 17:51  功夫 熊猫  阅读(526)  评论(0编辑  收藏  举报