__str__和__repr__方法

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 = 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')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值