【classmethod】
绑定方法:特殊之处在于将调用者当中第一个参数自动传入
1.绑定给对象的方法:调用者是对象,自动传入的是对象
2.绑定给类的方法:调用者是类,自动传入的是类
案例
【staticmethod=====静态方法】
非绑定方法===>静态方法:
没有绑定给任何人:调用者可以是类\对象,没有自动传参的效果
函数体内即不需要对象,也不需要类传进来,我就是一个独立的功能
案例
1 class Mysql: 2 def __init__(self, ip, port): 3 # self.nid= 4 self.ip = ip 5 self.port = port 6 7 @staticmethod # 将下述函数装饰成一个静态方法 8 def create_id(): 9 import uuid 10 return uuid.uuid4() 11 12 @classmethod 13 def f1(cls): 14 ... 15 16 def f2(self): 17 ... 18 19 20 obj1 = Mysql('1.1.1.1', 3306) 21 # Mysql.create_id() 22 # obj1.create_id() # 类和对象都可以调用 23 print(Mysql.create_id()) # 非绑定 f88d1e08-e3b2-4acc-a807-ffad99260d4f 24 print(Mysql.f1) # 绑定给类 <bound method Mysql.f1 of <class '__main__.Mysql'>> 25 print(obj1.f2) # 绑定给对象