python - 如何在 Python 中重载一元负(减)运算符?

标签 python

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/

相关文章:

Python-获取列表中少数类的百分比

python - 使用 seaborn barplot 绘制宽格式数据帧

python - 循环保存图形

python - Pandas : Map the list value in a column to dictionary based on group

python - 使用PIL的渐变只是一种纯色

python - Flask 测试客户端使用 GET 请求而不是 POST

python - 使用python和pandas制作MIS折线图

python - Django,注册扩展用户模型

c# - 如何在 C# 中执行 Python 的 zip?

python - 粘贴到 VIM 时缩进错误