美文网首页
01.14 - 运算符重载

01.14 - 运算符重载

作者: xxxQinli | 来源:发表于2019-01-14 17:22 被阅读0次

什么是运算符重载

  • 通过实现类中的相应的魔法方法,来让当前类的对象支持响应的运算符

注意:python中所有的数据类型都是类;所有的数据都是对象,所有类的对象都支持==和!=运算符,其他的必须靠魔法方法实现

  • 加号对应的魔法方法:__add__,让两个对象能够进行+操作,有两个参数,一个self,一个other,self指的是加号前的对象,other是加号后的对象,返回值为运算结果

  • 乘号对应的魔法方法:__mul__

  • 大于对应的魔法方法:__gt__,若有大于类,小于也会有,对结果去反

class Ql_Student(object):  # 
    """ 
    类说明文档:
    """
    def __init__(self, name, age, score):
        """
        函数说明文档:
        """
        self.name = name
        self.age = age
        self.score = score
    
    def __add__(self, other):
        return self.age + other.age
    
    def __mul__(self, other):
        return self.name * other
    
    def __gt__(self, other):
        return self.score > other.score
    
    def __repr__(self):
        return '<' + str(self.__dict__)[1:-1] + '>'


    


def main():
    stu1 = Ql_Student('小花', 18, 90)
    stu2 = Ql_Student('小明', 20, 78)
    stu3 = Ql_Student('小红', 19, 80)
    print(stu1 == stu2)
    print(stu1 + stu2)
    print(stu1 * 2)
    print(stu1 < stu2)
    students = [stu1, stu2, stu3]
    print(sorted(students, key = lambda x:x.score))
    print('*' * 50 )
    students.sort()
    print(students)


相关文章

  • 01.14 - 运算符重载

    什么是运算符重载 通过实现类中的相应的魔法方法,来让当前类的对象支持响应的运算符 注意:python中所有的数据类...

  • 运算符重载及其他约定

    7.1 重载算术运算符 重载二元算术运算符 重载复合赋值运算符 重载一元运算符 重载比较运算符 等号运算符:‘eq...

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • 2019-07-11 运算符的重载

    运算符的重载 重载运算符 (“::”,“.*”,“.”,“?:”)不能被重载。 重载运算符时,不能改变其本质,如不...

  • 运算符重载

    一.+号运算符重载 二.<<号运算符重载 三.指针运算符重载(智能指针)

  • C++运算符重载-下篇 (Boolan)

    C++运算符重载-下篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符重载-上篇 (Boolan)

    C++运算符重载-上篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++重载

    重载 C++语言规定: 重载的运算符要保持原运算符的意义。只能对已有的运算符重载,不能增加新的运算符。重载的运算符...

  • C++运算符重载详解

    运算符重载规则 1.被重载的运算符必须是已经存在的C++运算符,不能重载自己创建的运算符; 2.运算符被重载之后,...

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。...

网友评论

      本文标题:01.14 - 运算符重载

      本文链接:https://www.haomeiwen.com/subject/ecejdqtx.html