python中的__call__和__repr__魔术方法
发布时间:2020-12-20 09:52:14 所属栏目:Python 来源:网络整理
导读:__call__:实现了__call__的对象是可调用的 __repr__:实现了__repr__的对象可以输出对象的相应属性信息 比如说: class Student: def __init__ (self,id,name): self.id = id self.name = name __repr__ (self): return ' id= ' +str(self.id)+ ,name= ' +
__call__:实现了__call__的对象是可调用的 __repr__:实现了__repr__的对象可以输出对象的相应属性信息 比如说: class Student: def __init__(self,id,name): self.id=id self.name=name __repr__(self): return 'id='+str(self.id)+,name='+self.name __call__print("I can be called") print(fmy name is {self.name}') 首先创建一个对象: stu=Student(id-1,name=tom") 判断该对象是否是可调用的: callable(stu) 输出:True 那么,就可以使用如下方式调用该对象: stu() 输出: I can be called my name is 张三 而对于实现了__repr__魔术方法的类而言,我们可以使用如下方式打印其相关的属性信息: print(stu)
输出: id=1,name=张三 需要注意的是,我们需要将self.id转换成str的格式,不然会报错。也就是说__repr__实际上是将对象以字符串的格式进行输出。 同样的,我们也可以使用ascii函数将对象以ascii的格式进行输出: ascii(stu) 输出; 'id=1,name=u5f20u4e09' ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |