class Card():
def __init__(self, val):
self.val = val
c = Card(1)
d = -c
我希望d
为Card
个对象,d.val
为-1。我怎么能这样做?
答案 0 :(得分:19)
听起来你希望Card
上的一元减号运算符返回一个值为negated的新卡。如果这就是您想要的,您可以在类上定义__neg__
运算符,如下所示:
class Card:
def __init__(self, val):
self.val = val
def __neg__(self):
return Card(-self.val)
__neg__
包含在方法列表中,可以在此处重写以自定义算术运算:https://docs.python.org/3/reference/datamodel.html#emulating-numeric-types