面向对象之静态方法

静态方法:很类似类方法

1.需要装饰器@staticmethod

2.静态方法是无需传递参数(如,cls,self)

3.静态方法里面也只能访问类的属性和方法,而对象的是无法访问的(即,用self.xx访问属性和访问方法是不可以的)

4.加载时机同类方法,即在对象还没有创建时,就已经加载了

class Person:
    # 类的私有属性
    __age = 18

    @classmethod
    def update_age(cls):
        cls.__age = 20
        print('----->类方法')

    @classmethod
    def show_age(cls):
        print('修改后的年龄是:', cls.__age)

    @staticmethod
    def test():
        print('------>静态方法')
        print(Person.__age)


Person.update_age()
Person.show_age()
Person.test()

 总结:

比较类方法和静态方法

不同点:

1.装饰器不同

2.类方法是有参数的,而静态方法没有参数

相同点:

1.只能访问类的属性和方法,对象的是无法访问的

2.都可以通过类名调用访问

3.都可以在创建对象之前使用,因为是不依赖于对象的

普通方法与类方法,静态方法的区别

1.普通方法没有装饰器

2.普通方法永远要依赖对象,因为每个普通方法都有一个self(因此只有对象创建了,才能调用普通方法)

猜你喜欢

转载自www.cnblogs.com/GumpYan/p/12362371.html