绑定方法与非绑定方法

方法种类

  1、类中定义的函数分为两大类:绑定方法和非绑定方法

绑定方法

  1、分类

    绑定方法又分为绑定到对象的对象方法和绑定到类的类方法

  2、绑定到对象的对象方法

class Student():
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    # 绑定给对象的方法,对象来调用,会把自己当成第一个参数传到函数里面self
    def tell_info(self):
        print('name: %s,age:%s, gender:%s' % (self.name, self.age, self.gender))


stu = Student('ly', 18, 'male')
print(stu.name)
stu.tell_info() # stu.tell_info(stu)

  3、绑定到类的类方法

class Mysql():
    def __init__(self, ip, port):
        self.ip = ip
        self.port = port

    @classmethod  # 该方法绑定给类了,以后有类来调用,会自动把类名当成第一个参数传过来,cls
    def from_conf(cls):
        # cls => Oracle
        # obj = Oracle(settings.IP, settings.PORT)
        obj = cls(settings.IP, settings.PORT)
        return obj
 Mysql.from_conf()

非绑定方法

  非绑定方法就是静态方法;既不绑定给类,也不绑定类类

class Student():
    school = 'SH'
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @staticmethod  # 静态方法
    def create_id():
        import uuid
        return uuid.uuid4()

stu = Student('ly', 18)

# print(stu.create_id())
# print(Student.create_id())
print(stu.create_id())

 

posted @ 2021-12-03 16:29  那就凑个整吧  阅读(70)  评论(0编辑  收藏  举报