30---绑定方法与非绑定方法
一 绑定方法
绑定方法:特殊之处在于将调用者本身当作第一个参数自动传入
1 绑定给对象:调用者是对象,自动传入的是对象
2 绑定给类:调用者是类,自动传入的是类
# 类方法---通常用来在__init__的基础上提供额外的初始化实例的方式
ip = '123.01.03'
port = 3306
class Data:
def __init__(self,ip,port):
self.ip = ip
self.port = port
@classmethod # 将下面的函数装饰成绑定给类的方法
def from_file(cls):
return cls(ip,port)
data = Data.from_file()
二 非绑定方法
非绑定方法---静态方法@staticmethod
将被装饰函数编程普通函数,没有绑定给任何人
没有绑定给任何类或者对象,没有自动传参的效果
三 总结
总结:
总结绑定方法与非绑定方法的使用:若类中需要一个功能,该功能的实现代码中需要引用对象则将其定义成对象方法、需要引用类则将其定义成类方法、无需引用类或对象则将其定义成静态方法。