一: 绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入
1. 绑定给对象的方法: 类中定义的函数默认就是绑定给对象的
2. 绑定给类的方法: 为类中定义的函数加上一个装饰器classmethod
二: 非绑定方法: 既不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论谁来调用都是一个普通的函数,没有自动传值的效果
import settings
class MySql:
def __init__(self, ip, port):
self.id = self.create_id()
self.ip = ip
self.port = port
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)
@staticmethod
def create_id():
import uuid
return uuid.uuid4()
# obj1=MySql('1.1.1.1',3306)
# obj1.tell_info()
obj2 = MySql.from_conf()
obj2.tell_info()