Python 中有很多魔法方法,它们以双下划线 初始化方法,用于创建对象并设置初始状态。 返回对象的非正式字符串表示形式,通过 返回对象的正式字符串表示形式,通过 返回对象的长度,通过内置函数 定义对象的索引访问,通过 定义对象的索引赋值,通过 定义对象的索引删除,通过 返回一个迭代器对象,通过 定义迭代器的下一个元素,通过 定义成员关系测试,通过 定义对象相等性,通过 定义对象的不等性,通过 定义对象的小于关系,通过 定义对象的小于等于关系,通过 定义对象的大于关系,通过 定义对象的大于等于关系,通过 定义对象的可调用行为,通过 用于定义上下文管理器,支持 在访问不存在的属性时调用。 在设置属性时调用。 在删除属性时调用。 这只是一小部分魔法方法,Python 中还有其他许多用于实现特定功能的魔法方法。不同的魔法方法用于支持不同的操作和特性,根据需要选择实现适当的魔法方法。 1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。 NLP工程化(公众号)
NLP工程化(知识星球)
__
开头和结尾,用于实现类的特殊行为。以下是一些常用的魔法方法:1.
__init__(self, ...)
2.
__str__(self)
str()
函数调用。3.
__repr__(self)
repr()
函数调用。4.
__len__(self)
len()
调用。5.
__getitem__(self, key)
obj[key]
进行调用。6.
__setitem__(self, key, value)
obj[key] = value
进行调用。7.
__delitem__(self, key)
del obj[key]
进行调用。8.
__iter__(self)
iter(obj)
进行调用。9.
__next__(self)
next(obj)
进行调用。10.
__contains__(self, item)
item in obj
进行调用。11.
__eq__(self, other)
obj == other
进行调用。12.
__ne__(self, other)
obj != other
进行调用。13.
__lt__(self, other)
obj < other
进行调用。14.
__le__(self, other)
obj <= other
进行调用。15.
__gt__(self, other)
obj > other
进行调用。16.
__ge__(self, other)
obj >= other
进行调用。17.
__call__(self, ...)
obj()
进行调用。18.
__enter__(self)
, __exit__(self, exc_type, exc_value, traceback)
with
语句。19.
__getattr__(self, name)
20.
__setattr__(self, name, value)
21.
__delattr__(self, name)
NLP工程化
2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf