Python中_str__および_repr__

932 ワード

クラスのインスタンスを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


str()は呼び出されないようです.
Pythonはstr()とrepr()の2つの方法を定義しているため、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__

慕課網から、廖雪峰先生