【发布时间】:2021-03-26 15:12:12
【问题描述】:
我出于好奇而问这个问题,我要问的问题可能有很多解决方法。
当你在python中创建一个类时,你可以通过使用“self”和“other”关键字来定义获取这个类的两个实例的方法,例如
class MyClass():
def __init__(self, x):
self.x = x
def __add__(self, other):
return self.x + other.x
你能对同一个类的 3 个或更多实例做同样的事情吗?也就是说,有没有像“self”、“other”、“another”这样的东西?
【问题讨论】:
-
您可以编写任何您想要的此类方法,只是没有标准的
__dunder__方法可以映射到任何运算符(三操作数运算符甚至看起来像什么?)。但是def my_method(self, other, another)完全有效…… -
other在这里不是关键字——它只是一个任意标识符,有人选择用作第二个参数的名称。 (self实际上是相同的,但是关于将其用作方法的第一个参数有一个更严格的约定。) -
我明白了,因为我的编辑突出了
self和other,我认为这些是关键字。如果需要,我将使用:self、other、another、yetanother。在我耳边听起来真的很性感。 -
考虑
def foo(self, *args)... -
更性感!谢谢