绑定方法与非绑定方法

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

 

posted @ 2021-12-03 16:32  tslam  阅读(39)  评论(0编辑  收藏  举报