热门搜索 :
考研考公
您的当前位置:首页正文

python使用add进行重载加法

2024-07-16 来源:伴沃教育

本文教程操作环境: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编写一个三维向量,实现向量的加法减法,点乘叉乘

def __add__(self, obj): #重载+作为加号 return vector3(self.x+obj.x, self.y+obj.y, self.z+obj.z)def __sub__(self, obj): #重载-作为减号 return vector3(self.x-obj.x, self.y-obj.y, self.z-obj.z)def __mul__(self, obj): #重载*作为点乘 return vector3(self....

Python 运算符重载中__add__(self,other)的other.x如何理解?

self是第一个参数。在python里是指“实例”本身。就是自己。 这个class A有一个属性是x other是第二个参数,它代表另一个class A的实例。当然它也有一个属性x __add__是一个重载加号的函数。意思是将两个class A实例相加,结果等于两个实例的x变量相加之和。other.x与self.x当然是指不同实例...

python 菜鸟求助,在线等?

备份一个文件,使用shutil库的copy函数可以达到这个目的:重载加法运算符,可以通过重写类的__add__方法来实现,如下:以上是list相加时本来的结果,我们可以改为让列表中的每个元素相加——

Python正确重载运算符的方法示例详解

我们为 Vector 类简略实现了几个运算符。__add__ 和 __mul__ 方法是为了展示如何使用特殊方法重载运算符,不过有些小问题被我们忽视了。此外,我们定义的Vector2d.__eq__ 方法认为 Vector(3, 4) == [3, 4] 是真的(True),这可能并不合理。下面来一起看看详细的介绍吧。运算符重载基础 ...

Python魔法函数(特殊函数)

在C++中可以使用 operator 关键字实现运算符的重载。但是在Python中没有类似这样的关键字,所以要实现运算符的重载,就要用到Python的魔法函数。Python魔法函数是以双下划线开头,双下划线结尾的一组函数。我们在类定义中最常用到的 __init__ 函数就是这样一个魔法函数,它在创建类对象时被自动调用。下面...

函数重载是什么意思

例如,在C++中,我们可以定义一个名为“add”的函数,用于将两个整数相加。同时,我们还可以定义一个同样名为“add”的函数,用于将两个浮点数相加。这样,在代码中就可以根据需要调用适当的“add”函数。函数重载在面向对象的编程语言中尤其常见。在这些语言中,方法(即类的成员函数)可以被重载多次,...

python 重载方法有哪些特点

在 Python中,运算符重载的方式更为简单——每一个类都默认内置了所有可能的运算符方法,只要重写这个方法,就可以实现针对该运算符的重载。例如以下是重载加法操作:class Info(object): def __init__(self): self.a = 11 self.b = 22 def __add__(self,x): return self.a * self.b上面...

python重载是什么意思

当使用Python定义类时,我们可以为类的方法和运算符定义别名,这就是所谓的Python重载。Python支持重载的基础运算符(如加号、减号、乘号等),以及自定义的方法和运算符。通过重载运算符,我们可以改变该运算符对对象的操作方式,使得该运算符适用于基本类型和用户定义的对象。重载可以提高代码的可读性和简明...

怎么理解Python中重载?通俗理解是

如果输入两个整数相加则直接使用整数加法,如果两个字符串相加则使用字符串的拼接。输入的参数类型不同,其实是两个不同的函数,这在那种强类型语言中是可以利用函数重载来实现的,而python中函数类型是动态的各种各样的,所以不需要重载这个机制。相同函数名就是表示同一个方法。

python有关运算符重载的问题

必须是像这样:if 某某东西 in 一个你重载了__contains__的类的对象(你的代码里是 instance):所以只有14行是会调用到这个函数的,其余的都不会

Top