python中的__call__和__repr__魔术方法

python中的__call__和__repr__魔术方法,第1张

概述__call__:实现了__call__的对象是可调用的 __repr__:实现了__repr__的对象可以输出对象的相应属性信息 比如说: class Student: def __init__(s

__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__魔术方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存