python-面向对象(绑定方法与非绑定方法)

时间:2022-11-13 17:21:17

一、绑定方法:

绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入

  1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的,自动将对象当作第一个参数传入,类也可以调用,但是不会自动传值

  2.绑定给类的方法:为类中定义的函数加上一个装饰器classmethod,自动将类当作第一个参数传入,对象也可以调用,但是仍然将类当第一个参数传入

二、非绑定方法:

即不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论谁来调用都是一个普通函数,没有自动传值的效果

import settings

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

    def tell_info(self):
        print('id:%s,ip:%s port:%s'%(self.id,self.ip,self.port))

    @classmethod
    def from_conf(cls):
        return cls(settings.ip,settings.port)#clx(ip,port)

    @staticmethod
    def create_id():
        import uuid
        return uuid.uuid4()


# obj = Mysql('1.2.3.4','3006')
obj = Mysql.from_conf()
obj.tell_info()

 

后期补全!