python中的“其他”是什么意思?

时间:2018-06-24 13:06:28

标签: python python-3.x oop

因此,我刚开始在 python 3 中学习面向对象的编程,遇到了“ __add__”方法,但我不理解“ strong> other “是,它是做什么的。我试图在互联网上寻找答案,但没有发现任何东西,这是我的代码示例:

import math

class MyClass:

    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __add__(self, other):
        f = self.x + other.x
        e = self.y + other.y

3 个答案:

答案 0 :(得分:3)

  

“ other”是什么以及它做什么。

它是参数的名称。例如,参数def run(bars_by_foo_id) Foo.update( bars_by_foo_id.keys, bars_by_foo_id.values.map do |bar| { bar: bar } end ) end other的另一个实例。请看以下示例:

MyClass

在这种情况下,a = MyClass(1, 2) b = MyClass(3, 4) # the next line calls MyClass.__add__ on the instance a c = a + b a,而selfb

示例中other的代码不完整,它实际上应该返回一个新的__add__实例。

MyClass

答案 1 :(得分:0)

other在这种情况下称为“参数”。参数有点像函数定义中的“孔”,您以后可以在其中填充称为“参数”的具体值。

例如,在

def foo(a, b):
    return a + b

ab是函数foo以及您调用

时的参数
foo(3, 5)

然后35是绑定到参数的参数,因此对于该函数的特定调用,执行的代码为

3 + 5

答案 2 :(得分:0)

other只是一个参数名称。尽管方法遵循一些约定以使代码更清晰,但是您可以随意调用它。

这是一些通常具有特殊含义的参数名称。

  • self:一个参数,应为该方法所来自的实例 被称为

  • other:期望作为类实例的参数,但不是 调用方法的人

  • cls:类本身

特别是,__add__运算符调用方法+

self + other

...叫什么...

self.__add__(other)

示例

class MyNumber(int):
    def __add__(self, other):
        print('I am', self)
        print('I encountered', other)
        return super().__add__(other)

x = MyNumber(2)
y = MyNumber(3)

x + y

输出

I am 2
I encountered 3