首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python编程

Python编程
EN

Stack Overflow用户
提问于 2017-03-24 18:24:48
回答 3查看 332关注 0票数 4

我对python编程很陌生。我正在做关于从这里(滚动到操作符重载)的重载操作符的教程。我不太明白这段代码。我希望有人能详细解释这一点。准确地说,我不明白这里是如何添加两个对象的,以及这些行是什么

代码语言:javascript
复制
def __str__(self):
          return 'Vector (%d, %d)' % (self.a, self.b)           
def __add__(self,other):
          return Vector(self.a + other.a, self.b + other.b) 

在这里做什么?

代码语言:javascript
复制
#!/usr/bin/python

class Vector:
   def __init__(self, a, b):
      self.a = a
      self.b = b

   def __str__(self):
      return 'Vector (%d, %d)' % (self.a, self.b)

   def __add__(self,other):
      return Vector(self.a + other.a, self.b + other.b)

v1 = Vector(2,10)
v2 = Vector(5,-2)
print v1 + v2

这就产生了一个输出矢量(7,8)。这里是如何添加对象v1和v2的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-24 18:27:40

v1 + v2self == v1other == v2一起被视为对v1.__add__(v2)的调用。

票数 5
EN

Stack Overflow用户

发布于 2017-03-24 18:29:10

这是Python模型,这里回答了您的问题

基本上,当执行v1 + v2时,python在内部执行v1.__add__(v2)

票数 2
EN

Stack Overflow用户

发布于 2017-03-24 18:30:35

这个代码是在执行向量加法,就像在纸上添加两个向量一样,它使用标量加法组合了相应的组件。您正在重写__add__方法,以告诉解释器如何为您的类执行加法。

守则:

代码语言:javascript
复制
self.a + other.a

组合向量类的一个组件。守则:

代码语言:javascript
复制
self.b + other.b

使用对b类型适当的加法函数组合向量类的b组件。

这些新的组件值被传递给Vector的构造函数,以返回一个新的Vector。

+操作符将调用类上的__add__方法来执行加法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43006674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档