関数の書き換え

4877 ワード

class Person:
    def __init__(self,name,hobby):
        self.name = name
        self.hobby = hobby

per = Person('  ','coding')
print(per)

実行結果:
<__main__.Person object at 0x00000210C403F2B0>

ここでは関数を書き直します
class Person:
    def __init__(self,name,hobby):
        self.name = name
        self.hobby = hobby

    def __str__(self):
        return '%s-%s'%(self.name,self.hobby)

per = Person('  ','coding')
print(per)

実行結果:
  -coding

オブジェクトを印刷するときに_を書き換えます.str__関数を使用すると、私たちの考えの形式で出力できますが、ここでは、_str__関数の戻り値は、クラスに存在しない場合は文字列でなければなりません.str__,存在_repr__を使用して書き換えることができます.repr__,そして__を使いますstr__ = __repr__ 次のようになります.
class Person:
    def __init__(self,name,hobby):
        self.name = name
        self.hobby = hobby

    def __repr__(self):
        return '%s-%s'%(self.name,self.hobby)

    __str__ = __repr__

per = Person('  ','coding')
print(per)