在Python中,“other”是什么意思?

6

我刚开始学习在Python 3中的面向对象编程,遇到了"__add__"方法,但是我不理解" 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
如果你从MyClass创建一个实例,例如命名为m,如果你想要将另一个数字添加到m中,other将用于保存该数字或对象的m + another_obj - Mazdak
随意接受一个答案 - Thomas
4个回答

12

“other”是什么以及它的作用。

这是一个参数名。参数other代表(例如)另一个MyClass实例。以下是一个示例:

a = MyClass(1, 2)
b = MyClass(3, 4)
# the next line calls MyClass.__add__ on the instance a
c = a + b 
在这种情况下,aselfbother。 你的例子中__add__的代码不完整,真正需要返回一个新的MyClass实例。
def __add__(self, other):
    f = self.x + other.x
    e = self.y + other.y
    return MyClass(f, e)

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

0

other是这个方法的参数,你可以仅在此方法中使用它,你可以用任何其他东西替换"other"。 self是一个明确的单词,你不能更改它,它用于引用该类的该对象的属性,并且你可以在许多def中使用它。


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

-1
在编程中,other 在这种情况下被称为“参数”。参数有点像函数定义中的“空洞”,您可以稍后用一个具体值(称为“参数”)来填充它。
例如,在
def foo(a, b):
    return a + b

ab是函数foo的参数,当你调用

foo(3, 5)

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

3 + 5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接