当前位置: 代码迷 >> 综合 >> __str__和__repr__方法
  详细解决方案

__str__和__repr__方法

热度:28   发布时间:2023-10-23 18:06:55.0
Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。

函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。
repr()函数得到的字符串通常可以用来重新获得该对象,repr()的输入对python比较友好。通常情况下obj==eval(repr(obj))这个等式是成立的。

print('asd' == eval(repr('asd')))   #  True  而str()函数这没有这个功能

>>>repr([0,1,2,3])
'[0,1,2,3]'
>>> repr('Hello')
"'Hello'">>> str(1.0/7.0)
'0.142857142857'
>>> repr(1.0/7.0)
'0.14285714285714285'
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
class Person(object):def __init__(self, name, gender):self.name = nameself.gender = genderdef __str__(self):return '(__str__: %s, %s)' % (self.name, self.gender)def __repr__(self):return '(__repr__: %r, %r)' % (self.name, self.gender)p = Person('lh','male')
print(p)   # (__str__: lh, male)
print(p.__str__())  # (__str__: lh, male)
print(p.__repr__())  # (__repr__: 'lh', 'male')# %s => str(),比较智能;
# %r => repr(),处理较为简单和直接;
print("%s" %p)  # (__str__: lh, male)
print("%r" %p)  # (__repr__: 'lh', 'male')


  相关解决方案