zoukankan      html  css  js  c++  java
  • __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)
  • 相关阅读:
    基因id转换
    Trinity的分步运行
    免费的稳定的SVN托管的服务器
    游戏化
    一个华裔男孩在美国的成长之路
    你懂USB和Type-C吗
    ios调试小技巧
    swift开发笔记19
    iOS 3DTouch应用
    iCloud实现APP多设备数据同步
  • 原文地址:https://www.cnblogs.com/cong12586/p/11371982.html
Copyright © 2011-2022 走看看