Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。
函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。
repr()函数得到的字符串通常可以用来重新获得该对象,repr()的输入对python比较友好。通常情况下obj==eval(repr(obj))这个等式是成立的。
函数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 = name self.gender = gender def __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')