第二十二天:有关类的一些方法
目录
classmethod
classmethod是python自带的装饰器
作用
装饰定义在类中的函数,使这个函数变成类的绑定方法,我们都知道对象的绑定方法的特殊之处在于,它会把对象当作第一个参数传入,而类的绑定方法与此相似,它会把对象当第一个参数传入。
使用方法
class Test:
@classmethod
def call(cls):
pass
staticmethod
与classmethod相同,它也是一种python自带的装饰器
作用
装饰定义在类内部的函数,使这个函数既不是类的绑定方法,也不是对象的绑定方法
使用方法
class Test:
@staticmethod
def call():
pass
isinstance
python的内置函数,用于判断一个对象是否是一个类的实例,该函数有两个参数,需要传个对象和一个类,返回一个布尔值
class Foo:
pass
foo = Foo()
print(isinstance(foo,Foo))
issubclass
python 内置函数,用于判断一个类是否是另一个类的子类,该函数需要传两个类进去,返回一个布尔值
class Foo:
pass
class Goo(Foo):
pass
print(issubclass(Goo,Foo))
反射
反射指的是通过字符串对对象或者类的属性进行操作
以下是几种常用的
hasattr
通过字符串判断该字符串是否是对象或类的属性,有两个参数,类或对象和一个字符串,返回布尔值
class People:
country = 'China'
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
p = People('lk',18,'male')
print(hasattr(p,'name'))
getattr
通过字符串获取对象或类的属性
print(getattr(p,'name'))
setattr
通过字符串,设置对象或类的属性
setattr(p,'name','ll')
delattr
通过字符串,删除对象或类的属性
delattr(p,'name')
魔法方法
什么是魔法方法
凡是在类内部定义,以“__ 开头 __结尾”的方法都称之为魔法方法,又称“类的内置方法”。魔法方法会在某些条件成立时触发
几种常用的魔法方法
__ init __ : 在调用类时触发。
__ str__ : 会在打印对象时触发。
__ del__ : 对象被销毁前执行该方法,该方法会在最后执行。
__ getattr__ : 会在对象.属性时,“属性没有”的情况下才会触发。
__ setattr__ : 会在 “对象.属性 = 属性值” 时触发。
__ call__ : 会在对象被调用时触发。
__ new__ : 会在__ init__执行前触发。
单例模式
什么是单例模式
单例模式是指单个实例
单例模式可以让调用者多次调用这个类时指向同一个内存地址
作用
可以减少内存地址的占用
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步