美文网首页
Python中__str__和__repr__

Python中__str__和__repr__

作者: Ji_uu | 来源:发表于2018-01-03 00:24 被阅读0次

    如果要把一个类的实例变成 str,就需要实现特殊方法str():

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
    

    现在,在交互式命令行下用 print 试试:

    >>> p = Person('Bob', 'male')
    >>> print p
    (Person: Bob, male)
    

    但是,如果直接敲变量 p:

    >>> p
    <main.Person object at 0x10c941890>
    

    似乎str() 不会被调用。

    因为 Python 定义了str()和repr()两种方法,str()用于显示给用户,而repr()用于显示给开发人员。

    有一个偷懒的定义repr的方法:

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
        __repr__ = __str__
    

    来自慕课网,廖雪峰老师

    相关文章

      网友评论

          本文标题:Python中__str__和__repr__

          本文链接:https://www.haomeiwen.com/subject/asucnxtx.html