gpt4 book ai didi

Python - 具有 "don' t care"值的数字类

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:44 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的数据类型,用作 Numpy 数组的 dtype,我可以在其上执行元素明智的加法、减法和比较。该类型应具有(至少)三个值,分别表示真、假和“无关”(DC)。后者等于 true 和 false,并且在加法和减法中表现得像零:

>>> MyDtype(True) == MyDtype(DC) == MyDtype(True)    # note reflection
True
>>> MyDtype(False) == MyDtype(DC) == MyDtype(False) # ditto
True
>>> MyDtype(True) == MyDtype(False)
False
>>> MyDtype(True) - MyDtype(DC) == MyDtype(True)
True
>>> MyDtype(DC) + MyDtype(False) == MyDtype(False)
True

我完全不知道如何以一种理智的方式获得这些语义。

最佳答案

您可以使用魔术函数来控制对您的类对象的算术运算。如果左侧的对象未实现相应的非反射操作,您甚至可以控制反射操作。

魔术方法的综合文档可以在这里找到(链接指向算术运算符部分,后面是关于反射算术运算的部分): http://www.rafekettler.com/magicmethods.html#numeric

我遇到了同样的问题并编写了一个类,其对象是 dontcare 符号。它不完全是您要求的,因为它不包装值,但应该很容易根据您的需要进行调整。你可以在这里得到它: https://github.com/keepitfree/nicerpython

from symbols import dontcare

True == dontcare == True
>>> True
False == dontcare == False
>>> True
True == False
>>> False
True - dontcare == True
>>> True
dontcare + False == False
>>> True

关于Python - 具有 "don' t care"值的数字类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com