__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=\\u5f20\\u4e09'
总结
以上是内存溢出为你收集整理的python中的__call__和__repr__魔术方法全部内容,希望文章能够帮你解决python中的__call__和__repr__魔术方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)