绑定方法与非绑定方法
"""
绑定方法与非绑定方法
针对:类中定义的函数
1 使用: 类中需要一个功能,该功能的实现需要代码
1.1引用对象,则将功能定义成对象方法
1.2引用类,则将功能定义成类方法
1.3无需引用对象和类,则将其定义成非绑定方法
2 定义与调用
2.1 绑定方法
1.1 对象方法(绑定到对象的,其类中定义的函数默认绑定给对象的)
释义: 将对象名作为参数自动传入
调用:
对象名.方法()
1.2 类方法(绑定到类的)
释义:将类名作为参数自动传入
怎么绑定:加装饰器@classmethod
调用:
类名.方法()
2.2 非绑定方法
"""
2 定义与调用
# 2.1 绑定方法
# 1.1 对象方法(绑定到对象的,其类中定义的函数默认绑定给对象的) # class Student(): # def __init__(self,name,age): # self.name = name # self.age = age # def stu_info(self): # print('name:%s,age:%s' % (self.name, self.age)) # # # stu1 = Student('jack', 18) # stu1.stu_info() # # 1.2 类方法(绑定到类的) # class Mysql(): # def __init__(self, ip, port): # self.ip = ip # self.port = port # @classmethod # def check_info(cls): # 将类名(cls即class)作为第一个参数自动传入 # res = cls(settings.ip, settings.port) # return res # def func(self): # print(self) # print(self.__class__) # # import settings # # res = Mysql.check_info() # print(res) # <__main__.Mysql object at 0x0000024F3CC7A518> # print(res.ip) # ip地址数字 # print(res.port) # 端口数字
# 2.2 非绑定方法
# # 不与对象和类绑定,所以不涉及传参,但是对象和类都可以调用它,其实就是一个普通函数 # import uuid # 产生一串随机数 # class Student(): # def __init__(self, name, age): # self.name = name # self.age = age # # def suijishu_student_code(self): # num = uuid.uuid4() # print(num) # stu3 = Student('jarry', 19) # stu3.suijishu_student_code()