python 类方法和静态方法

一,类方法

通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量

class Count:
    age = 18
    def __init__(self,name):
        self.name = name

    @classmethod
    def run(cls):
        print(cls.age)

c = Count('张伟')
c.run()

打印结果是18

class Count:
    age = 18
    def __init__(self,name):
        self.name = name

    @classmethod
    def run(cls):
        print(self.name)

c = Count('张伟')
c.run()

NameError: name 'self' is not defined

类访问实例变量self.name会报错

二,静态方法

在类中的方法前面通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法

特性:静态方法是不能访问实例变量和类变量的

class Count:
    age = 18
    def __init__(self,name):
        self.name = name

    @staticmethod
    def run():
     #当普通方法用
print(Count.age) #不报错,可以访问 print(self.age) #不能访问,报错 print(self.name) #不能访问,报错 c = Count('张伟') c.run()

 

posted @ 2018-07-27 16:49  没熟的油菜  阅读(247)  评论(0)    收藏  举报