美文网首页
运算符重载

运算符重载

作者: 匿隱 | 来源:发表于2019-02-12 09:33 被阅读0次

1.什么是运算符重载

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

注意:python中所有的数据类型都是类; 所有的数据都是对象

class Student(object):
    def __init__(self, name='', age=0, score=0):
        self.name = name
        self.age = age
        self.score = score

    def __repr__(self):
        return '<' + str(self.__dict__)[1:-1] + '>'

实现'+'对应的魔法方法,让两个学生对象能够进行+操作
self和other的关系: self+other ==> self.add(other)
返回值就是运算结果

    def __add__(self, other):
        # a.支持Student+Student:
        return self.age + other.age
        # b.支持Student+数字
        # return self.age + other

    # self * other
    # 将other当成数字
    def __mul__(self, other):
        return self.name * other

    # self和other都是学生对象
    # 注意:大于和小于运算符是需要重载一个就行
    def __gt__(self, other):
        return self.score > other.score


def main():
    stu1 = Student('小花', 18, 90)
    stu2 = Student('夏明', 20, 78)
    stu3 = Student('小红', 17, 99)

    # 所有类的对象都支持'=='和'!='运算
    print(stu1 == stu2)

    print(stu1 + stu2)     # print(stu1.__add__(stu2))

    # print(stu1 > stu2)
    # print(stu1 < stu2)

    print(stu1 * 2)   # print(stu1.__mul__(2))

    students = [stu1, stu2, stu3]
    print(students)
    students.sort()
    print(students)

相关文章

  • 运算符重载及其他约定

    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++运算符多种含义。...

  • 4.0 C++远征:重载运算符

    重载运算符 [TOC] 四、重载运算符 ​ 概念 : 给原有运算符赋予新功能。 ​ 本质 : 函数重载。 ...

网友评论

      本文标题:运算符重载

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