Python中的实例方法、类方法、静态方法的区别
- 2020 年 8 月 22 日
- 筆記
- 上海多测师, 上海软件测试培训, 多测师, 多测师_Python, 多测师线上培训, 广州多测师, 广州软件测试培训, 深圳多测师, 深圳软件测试培训, 线上软件测试培训, 软件测试培训
1、关于参数的区别
实例方法:定义实例方法是最少有一个形参 —> 实例对象,通常用self
类方法:定义类方法的时候最少有一个形参 —> 类对象,通常用cls
静态方法:定义静态方法的时候可以不定义形参
2、关于方法定义时候添加装饰器的区别
实例方法:不需要添加装饰器
类方法:需要添加装饰器 —-> @classmethod
静态方法:需要添加装饰器 —> @staticmethod
3、调用:
1.实例方法可以通过对象直接调用
2.但是用类名调用的时候,需要创建一个对象,并且在传递参数的时候要将对象传递进去
3.类方法可以通过类名直接调用,也可以通过对象来调用
4.静态方法可以通过类名直接调用,也可以通过对象来调用
4、补充
1.静态方法不可以继承。
2.类方法不能访问实例变量,只能访问类变量
class Dog(object): food = "gutou" age = "1" def __init__(self, name): self.NAME = name def eat(self,age): # 可以使用实例方法 # print(self.NAME) print(age) print(self.food) @classmethod def eat1(cls, age): # 只能是类中的变量 # print(cls.NAME) cls.food = "tang" @staticmethod def print_1(): print(Dog.food, Dog.age)