当前位置: 首页 > 后端技术 > Python

Python魔法函数

时间:2023-03-26 13:35:02 Python

一、什么是魔法函数魔法函数是Python类中以__(双下划线)开头,__(双下划线)结尾的函数。Python提供的函数允许我们随意定义类的特性例:classCompany(object):def__init__(self,employee_list):self.employee=employee_listdef__getitem__(self,item):返回自我。employee[item]company=Company(["Tom","Jerry","Bob"])#当没有__getitem__时,这样遍历Company类中的employeeforemincompany.employee:print(em)#自定义__getitem__后,Company成为emincompany:print(em)code__init__和__getitem__是魔术函数2.Python的数据模型以及数据模型对Python的影响魔术函数本身就是Python的数据模型,magicfunction是网上流行的名字。以__len__为例说明数据模型(Magicfunction)对Python的影响]def__len__(self):returnlen(self.employee)company=Company(["Tom","Jerry","Bob"])#如果没有定义__len__,则print(len(company))oflen()不能使用3.Python魔术函数列表(个别说明)3.1非数学运算字符串表示__repr__,__str____str__:stringformattingforobjectsclassCompany(object):def__init__(self,employee_list):self.employee=employee_listcompany=Company(["Tom","Jerry","Bob"])print(company)#在Python解释器中,str会被隐式调用,即print(str(company))此时输出:<__main__.Companyobjectat0x000001D53A322D30>验证解释器隐式调用strclassCompany(object):def__init__(self,employee_list):self.employee=employee_listdef__str__(self):return','.join(self.employee)company=Company(["Tom","Jerry","Bob"])print(company)output:Tom,Jerry,Bob__repr__:开发模式只会使用classCompany(object):def__init__(self,employee_list):self.employee=employee_listcompany=Company(["Tom","Jerry","Bob"])company#在Python解释器中,会隐式调用repr,即repr(company),里面company.__repr__()此时的Python输出:<__main__.Companyat0x1d53a2d3a58>验证解释器隐式调用reprclassCompany(object):def__init__(self,employee_list):self.employee=employee_listdef__repr__(self):return','.join(self.employee)company=Company(["Tom","Jerry","Bob"])公司输出:Tom,Jerry,Bob3.2数学运算pass

最新推荐
猜你喜欢