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")