python 静态方法,类方法

Python使用静态方法类似函数工具使用,一般尽量少用静态方法。
Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的:
1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数;
2)从第1条,静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量;
3)静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法

静态方法

- 只是名义上归类管理,实际上在静态方法里访问不了实例中的任何属性,只能访问类变量。

# 静态方法实际上根类没什么关系,单纯变成一个函数。

类方法

- 只能访问类变量,不能访问实例变量

使用场景:只能用写死的类变量。


class dog(object):
    food = "gutou"
    age = 1
    def __init__(self,name):
        self.name = name
    @staticmethod
    def print_static():
        dog.food = "stafood"
        print(dog.food)

    @classmethod
    def print_class(cls):
        print(dog.food)
    def print_pt(self):
        print()
dog.food = "yeei"
dog.print_static()
dog.print_class()
Dog_f = dog("dog_f")

  

原文地址:https://www.cnblogs.com/gongfuxiaozhen/p/9257298.html