函数重写

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)

你可能感兴趣的:(_python)