Python静态方法

来自CloudWiki
跳转至: 导航搜索

概念

静态函数通过@staticmethod修饰;

通常采用类的名称或者实例来调用静态方法,例如:Person.show(), p,show();

静态方法,其实就是我们学过的函数,和函数唯一的区别是,静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。

静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此,类的静态方法中无法调用任何类属性和类方法。;

代码

class Person:
    __name = 'james'
    __age = 12

    #类方法
    @classmethod #类方法的关键字
    def show(cls):
        print(cls.__name,cls.__age)

    #初始化方法
    def __init__(self,name,age):
        self.name = name
        self.age = age

    #对象方法
    def getName(self):
        return self.name

    def printInfo(self):
        print(self.name,self.age)

    #静态方法
    @staticmethod
    def compute(num):
        print(Person.__name)
        for i in range(0,num):
            print(i)

        
    

if __name__=="__main__":
    Person.show()#通过类名 调用类方法
    p=Person("zhangsan",23)
    p.show()#通过实例名,调用类方法

    print(p.getName())#通过实例名,调用实例方法
    Person.printInfo(p)#通过类名和实例名,调用实例方法

    print(Person.compute(10))#通过类名调用静态方法
    print(p.compute(10))#通过对象名调用静态方法