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

    python使用add进行重载加法

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

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

    1、先定义一个类:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    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 并不能相加,但是我们可以定义一个方法让它们实现相加。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    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 方法,我们实现了它们的相加功能。但是,我们还是习惯使用加号,事实上,我们只要改下函数名就可以使用 + 进行运算了。

    1

    2

    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学习网