__str__ 方法 __repr__
__str__ 自定义类的时候__str__方法的作用。这个魔术方法__str__主要的作用是在print(实例对象)
的时候返回你指定的字符串,一般来说在定义类的时候不用重写这个方法的,但是在一些注重交互的模块类的
编写上,可能会重写这个类。如果当前的类没有定义__str__方法默认集成 object 父类的__str__方法
__repr__()和__str__方法类似是 Python 类中的一个特殊方法,由 object 对象提供,
该方法主要实现 "内容描述" 功能:当直接打印类的实例化对象时,系统将会自动调用该方法,输出对象的
自我描述信息,用来告诉外界对象具有的状态信息
class MyString:
def __init__(self):
pass
a = MyString()
print(a)
此时输出的结果,是当前的类的实例,以及对应的内存地址
<__main__.MyString object at 0x009DEE10>
使用__str__方法
注意:这个方法必须要保证返回的是一个str类型的数据
class MyString:
def __init__(self,name):
self.name = name
def __str__(self):
return self.name
a = MyString("实例的name:")
print(a)
输出结果:
输出结果,当前实例的名称来源于 __str__方法定义的返回值
# 实例的name:
总结: 可以看到,这个时候print(实例),将会出现我们指定好的str内容。这就是__str__()方法的用处
__repr__方法 :
class MyClass:
def __repr__(self):
return "hello 你好 "
m = MyClass()
# 输出结果:hello 你好
print(m)
_repr__ 方法 和 __str__方法同时存在:
class MyClass:
def __str__(self):
return "hello word---1"
def __repr__(self):
return "hello word---2"
m = MyClass()
print(m)
m = MyClass()
print(m)
可以看到str的优先级比repr方法要高.在没有str方法时会自动调用repr方法
两个方法都不存在时,则继承 object 的__str__ 方法
输出结果: hello word---1
原文地址:http://www.cnblogs.com/manxingsir/p/16852216.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性