• 技术文章 >Python技术 >Python基础教程

    python使用add进行重载加法

    小妮浅浅小妮浅浅2021-05-08 09:54:32原创4387

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    1、先定义一个类:

    class Point:
        def __init__(self, x, y):
            self.x = x
            self.y = y
     
    >>> a = Point(2, 4)
    >>> b = Point(3, 5)
    >>> a + b
    Traceback (most recent call last):
      File "/usr/local/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2862, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-7-f96fb8f649b6>", line 1, in <module>
        a + b
    TypeError: unsupported operand type(s) for +: 'Point' and 'Point'

    很显然 a 和 b 并不能相加,但是我们可以定义一个方法让它们实现相加。

    class Point:
        def __init__(self, x, y):
            self.x = x
            self.y = y
        
        # 定义一个 add 方法
        def add(self, other):
            return Point(self.x + other.x, self.y + other.y)
     
    >>> a = Point(2, 4)
    >>> b = Point(3, 5)
    >>> c = a.add(b)
    >>> c.x
    Out[6]: 5

    2、通过一个 add 方法,我们实现了它们的相加功能。但是,我们还是习惯使用加号,事实上,我们只要改下函数名就可以使用 + 进行运算了。

       def __add__(self, other):
            return Point(self.x + other.x, self.y + other.y)

    很显然 + 就是调用类的 __add__ 方法,因为我们只要加入这个方法就能够实现加法操作。

    以上就是python使用add进行重载加法,希望能对大家有所帮助。更多Python学习指路:python基础教程

    专题推荐:python add
    上一篇:python特有方法有哪些 下一篇:python上下文管理的使用场景

    相关文章推荐

    • python中self的原理探究• python析构器是什么意思?• python装饰器转换方法的注意点• python继承的基类属性分析• python带参数__init__的使用• python中super获取类变量• python多继承的查找顺序是什么?• python特有方法有哪些

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网