Python 我如何在我的类中使用一个以上的特殊方法(例如object.\uuuuu add\uuuuu(self,other))?

Python 我如何在我的类中使用一个以上的特殊方法(例如object.\uuuuu add\uuuuu(self,other))?,python,Python,假设我有我经常想要添加的属性(我通过添加实例来实现)。当我只有一组我想要添加的属性时,我使用了\uuuuu add\uuuu方法。 但现在,如果我有多个方法,我是否只创建类方法,而不使用这个特定的dunder方法(\uuuuu add\uuuu) 那么,在上述情况下,是否需要使用\uuuuu添加\uuuu?我是不是应该制作自己的添加内容的方法 您可以循环遍历属性并逐个添加它们。不应该从代码中调用\uuuu add\uuu方法,它旨在为+操作符提供支持。我很难弄清楚你的问题是什么,也许你可以更新它

假设我有我经常想要添加的属性(我通过添加实例来实现)。当我只有一组我想要添加的属性时,我使用了
\uuuuu add\uuuu
方法。 但现在,如果我有多个方法,我是否只创建类方法,而不使用这个特定的dunder方法(
\uuuuu add\uuuu


那么,在上述情况下,是否需要使用
\uuuuu添加\uuuu
?我是不是应该制作自己的添加内容的方法

您可以循环遍历属性并逐个添加它们。

不应该从代码中调用
\uuuu add\uuu
方法,它旨在为
+
操作符提供支持。我很难弄清楚你的问题是什么,也许你可以更新它,以便提供一个你想要实现的目标和你面临的问题的例子。你需要决定+对这个目标意味着什么。最有可能的情况是,您不需要
\uuuuuuuuuuuuuuuuuuuuuuu
,并且确实希望执行类似于“ath1.num\u throws+ath2.num\u throws”的操作……虽然没有严格的要求,但是,
运动员。
应该返回一个新的
运动员
对象。如果您实际上没有添加两个
运动员
s,那么
\uuuuuuuuuuuuuu添加
就没有意义了。
class Athlete():

    def __init__(self, name, num_throws, num_games, minutes_played):
        self.name = name
        self.num_throws = num_throws
        self.num_games = num_games
        self.minutes_played = minutes_played

# I was using below method to calculate the total number of throws for 2 athletes
    def __add__(self, other):
        return self.num_throws * other.num_throws

# But now I have another addition to calculate the total number of minutes played
    def __add__(self, other):
        return self.minutes_played * other.minutes_played

ath1 = Athlete('John', 34, 19, 478)
ath2 = Athlete('Jim', 32, 11, 260)

print(ath1 + ath2)