"""
绑定方法与非绑定方法
针对:类中定义的函数
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()