__str__,__repr__,__add__

Posted cong12586

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__str__,__repr__,__add__相关的知识,希望对你有一定的参考价值。

class School:
    def __init__(self,name,addr,type):
        self.name=name
        self.addr=addr
        self.type=type

    def __repr__(self):
        return School(%s,%s) %(self.name,self.addr)
    def __str__(self):
        return (%s,%s) %(self.name,self.addr)
    def __add__(self, other):
        return School(self.name + other,henan,daxue)
‘‘‘
str函数或者print函数--->obj.__str__()
repr或者交互式解释器--->obj.__repr__()
如果__str__没有被定义,那么就会使用__repr__来代替输出
注意:这俩方法的返回值必须是字符串,否则抛出异常
两个方法并没有太大的区别
‘‘‘
school = School(农大,河南,大学)
# 我们没有定义__str__,__repr__时,返回是这样的
# <__main__.School object at 0x000001D5E3623358>
print(school)
# 两个都定义时
print(school) # (农大,河南)
# 只有__repr__时
print(school) # School(农大,河南)

# 当对象有 + 操作时,会调用__add__方法
# 只能写成school + ‘henan‘
# 不能写成‘henan’ + school
school1 = school + henan
print(school1)

 

以上是关于__str__,__repr__,__add__的主要内容,如果未能解决你的问题,请参考以下文章

python中__str__与__repr__

几个类的内置方法

为自己定义每个python类添加__repr__和__str__

__repr__与__str__

python学习之__str__,__repr__

__str__ 和 __repr__