运算符重载

2019-02-12  本文已影响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)
上一篇下一篇

猜你喜欢

热点阅读