python - __str__ 和 __repr__

 内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好(故被print调用),而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串。

事实上repr()和``做一样的事情,返回一个对象的“官方”字符串表示。其结果绝大多数情况下(不是所有)可以通过求值运算(内建函数eval())重新得到该对象。

str()则不同,它生成一个对象的可读性好的字符串表示,结果通常无法用eval()求值,但适合print输出。

 

class Student(object):
    def getname(self):
        try:
            raise Exception('input file name error !')

        except Exception, e:
            print e
        else:
            print 'wrong'
    def __init__(self, name):
         self.name = name
    def __str__(self):
         return 'object name:%s' % self.name
    __repr__ = __str__
a = Student('Michael')

print Student('Michael')

print a

print a.getname()

 

 

 

posted @ 2016-06-15 19:21  天涯逐梦  阅读(130)  评论(0编辑  收藏  举报