我定义了一个名为Time
的类,它有三个整型属性:hrs, min, sec
我还定义了两个方法intToTime()
和timeToInt()
,分别用于将Time
实例转换为表示该时间的秒数(int
类型),以及将表示秒数的int
类型转换回Time
实例。
我希望能够实现__add__
方法,这样我就可以进行如"TimeA + TimeB"或"TimeA + 100"这样的操作,其中100是要添加到TimeA中的秒数。
由于Python中没有重载机制,因此我想将这两个方法合并到一起。
def __add__(self,num):
return Time.intToTime(self,Time.timeToInt(self)+num)
def __add__(self,other):
return Time.intToTime(self,Time.timeToInt(self)+Time.timeToInt(other))
"num" 应该是一个整数,"other" 是另一个时间实例。我知道一种使用 isinstance() 的方法。但我的问题是,在这种情况下,如何在不使用 isinstance() 的情况下实现这样的“add”操作?
__add__
会覆盖前者,因为Python中没有方法重载。 - Wu Fant + Time.seconds(5)
比t + 5
更容易理解——加上了什么? - user395760int
添加到Time
中。在您的示例中,即timeA + 100
,从代码结构上并不清楚这个 100 应该代表什么(小时?纳秒?千年?)。您应该要求客户明确说明:timeA + Time(seconds=100)
。 - Benjamin Hodgson