class Card():
def __init__(self, val):
self.val = val
c = Card(1)
d = -c
我希望 d
是一个 Card
对象,d.val
是 -1。我该怎么做?
最佳答案
听起来您希望 Card
上的一元减号运算符返回一张取反值的新卡片。如果那是你想要的,你可以像这样在你的类上定义 __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
关于python - 如何在 Python 中重载一元负(减)运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45454715/