实例方法,必须要创建实例才能调用,里面有self关键字,有初始化函数必须对初始化函数进行传参。
类方法,可以直接类名.方法名直接调用,也可以创建实例调用。里面有cls关键字,调用时,直接类名.方法名,可以绕过实例方法的初始化函数,类方法不能访问实例属性。
静态方法,可以直接类名.方法名直接调用,也可以创建实例调用。没有关键字,就像调用函数一样方便,调用时,直接类名.方法名,可以绕过实例方法的初始化函数,静态方法不能访问实例属性。
下图3种方法:
看下图类方法和静态方法,没有创建实例去调用:
由上图调用结果可以知道,类方法和静态方法,都是通过类名.方法名的方式调用,不需要创建对象,也不需要对初始化函数进行传参。而实例方法,必须要创建实例对象才能调用,如果方法里面有初始化函数也必须对初始化函数进行传参。
看下图类方法和静态方法,创建实例后去调用:
代码如下:
import requests class HttpRequest(): def __init__(self,url,data): self.url = url self.data = data # todo 实例方法 def send_post(self,url,data): # todo 实例方法,只能通过实例来调用 res = requests.post(url,data) print(res.status_code) @classmethod def add(cls,x,y): print('我是类方法') return x+y @staticmethod def print_msg(): print('我是静态方法') if __name__ == '__main__': # todo 类方法和静态方法可以直接类名.方法名直接调用,可以绕过实例方法的初始化函数 print(HttpRequest.add(7,8)) HttpRequest.print_msg() url = 'https://www.ketangpai.com/UserApi/login' data = { "email": "1489088761@qq.com", "password": "A1234568","remember": 0 } HttpRequest(url,data).send_post(url,data)