体现大于魔法方法

2023-12-08

我需要一种“大于”的反射魔法方法,但似乎没有。情况是这样的。我有一个跟踪单位的课程。这就是所谓的财产。我有神奇的方法设置来处理比较,但是当我将属性放在右侧时它不起作用。这是一个例子:

class Property():
def __init__(self, input, units):
    self.value = input
    self.units = units


def __gt__(self, other):
    if isinstance(other, Property):
        return self.value.__gt__(other.value)
    else:
        return self.value.__gt__(other)

def __float__(self):
    return float(self.value)

if __name__=='__main__':

    x = Property(1.,'kg')
    y = Property(0.,'kg')
    print y > x
    print float(y) > x
    print y > float(x)

因此,如果您运行此命令,您将看到输出为:False、True、False,因为中间的示例正在执行 float > Property,它使用内置 > 而不是我使用魔术方法定义的 >。我需要一个当属性位于右侧时将使用的魔术方法。那不是一件事吗?如果没有,我该如何编写这个以便可以比较值的任何组合和我自己的类。我不想有任何比较规则。即,我不想永远无法将浮点数与属性进行比较。


您可以使用functools.total_ordering装饰器为您创建缺少的比较方法:

import functools

@functools.total_ordering
class Property():
    ...

然后你就会得到假,假,假。不过,请务必阅读其文档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

体现大于魔法方法 的相关文章

  • 如何向 django 中的用户模型添加自定义权限?

    默认情况下 在 django 中 当安装了 django contrib auth 的情况下运行syncdb时 它会在每个模型上创建默认权限 如 foo can change foo can delete 和 foo can add 要向模
  • Pandas:参差不齐的时间序列的时间加权滚动平均值

    我有一个参差不齐 意思是不规则的频率 时间索引的 DataFrame 我想对其执行时间加权滚动平均值 以维护 DataFrame 的原始索引 假设记录的值在被另一个值取代之前一直有效 实现此目的的一种方法是将参差不齐的 DataFrame
  • 在python中发送多个文件

    我是 python 新手 我正在尝试以下操作 我有两个 calsess Server py and Client py我想将服务器目录中存在的所有文件发送到客户端的某个目录 IE C ServerDir file1 txt C Server
  • 对于 `mouseMoveEvent()` 来说鼠标移动太快

    以下是 Python 3 版本 UI XML 代码显示 4QProgessBar对于每个鼠标方向 标记为 X X Y Y 快速移动鼠标 以圆圈形式 将使 4QProgessBar上升到 99 然后是一些QProgessBar休息一下 直到鼠
  • Numpy 中矩阵乘以另一个矩阵的每一行

    我有一个大小为 4x4 的齐次变换矩阵和一个大小为 nx3 的轨迹 该轨迹的每一行都是一个向量 我想将齐次变换矩阵乘以轨迹的每一行 下面是代码 append zero column at last trajectory np hstack
  • Matplotlib 颤抖比例

    我正在尝试使用 matplotlib 和 quiver 函数绘制一些箭头 但我想使用数组单独选择每个箭头的长度 http matplotlib sourceforge net api pyplot api html matplotlib p
  • 在类中设置默认值

    我正在用 Python 创建一个类 但我不确定如何正确设置默认值 我的目标是为所有类实例设置默认值 也可以通过类方法对其进行修改 但是 我希望在调用方法后恢复初始默认值 我已经能够使用下面所示的代码使其工作 它不是很 漂亮 所以我怀疑这是解
  • 如何创建自定义颜色图并将其用于不同范围的数据?

    假设我有这样的数据 import numpy as np import matplotlib pyplot as plt import matplotlib colors for reproducibility purposes np ra
  • Python bash 管道

    我想将 python 脚本的输出通过管道传输到 bash 脚本 到目前为止我所做的是尝试使用os popen sys subprocess 并试图给出一个管道的例子 os popen echo P 1 1 591336 4927369 1
  • 给定一个正整数 n,如何打印高度为 n-1 的数字三角形?

    HackerRank 三角任务 https www hackerrank com challenges python quest 1 problem 仅使用算术运算 单个for loop 和一个单一的print陈述 不允许进行字符串操作 约
  • 如何使用Python中的or-tools解决累积旅行商问题?

    累积旅行商问题 CTSP 的目标是最小化到达客户的时间总和 而不是总旅行时间 这与最小化总旅行时间不同 例如 如果一个人拥有无限的车辆 车辆与位置数量相同 并且目标是最大限度地减少到达位置的总时间 则可以为每个位置发送一辆车 因为这是满足所
  • Python:并行修改数组的简单方法

    这个问题可能听起来很简单 但作为 Python 并行化的新手 我肯定会遇到困难 我处理了 OpenMP for C 中的并行化问题 这要容易得多 我需要做的是并行修改矩阵的条目 就是这样 问题是 我无法使用简单的 joblib 库来做到这一
  • Python NameError,变量“未定义”

    它返回的错误是 NameError name lives is not defined 我知道代码并不是尽可能高效 这是我的第一个项目 但是无论我尝试做什么 都会弹出这个错误 我尝试为其创建一个全局变量 但这没有帮助 我真的很感激一些帮助
  • BeautifulSoup - 抓取论坛页面

    我正在尝试抓取论坛讨论并将其导出为 csv 文件 其中包含 线程标题 用户 和 帖子 等行 其中后者是每个人的实际论坛帖子 我是 Python 和 BeautifulSoup 的初学者 所以我对此感到非常困难 我当前的问题是 csv 文件中
  • 在Python中,如何将“datetime”对象转换为秒?

    我有一堆日期时间对象 我想计算每个对象自过去固定时间以来的秒数 例如自 1970 年 1 月 1 日以来 import datetime t datetime datetime 2009 10 21 0 0 这似乎只是区分具有不同日期的日期
  • 在Python中将字符串转换为变量? [复制]

    这个问题在这里已经有答案了 我对 python 和编程都很陌生 并且已经尝试弄清楚如何做到这一点有一段时间了 这是我需要帮助的内容 y 0 x 2 p01 hello p02 bye print p str y str x 输出当然是 p0
  • 熊猫:SettingWithCopyWarning:[重复]

    这个问题在这里已经有答案了 我尝试使用以下代码将列转换为 日期 df DATE pd to datetime df DATE or df DATE pd to datetime df DATE 但我收到以下错误 Users xyz anac
  • Python Pandas 系列失败日期时间

    我认为这一定是 pandas 的失败 有一个 pandas 系列 v 18 1 和 19 如果我为该系列分配一个日期 第一次将其添加为 int 错误 第二次将其添加为 int 错误 添加为日期时间 正确 我无法理解原因 例如使用以下代码 i
  • Python Flask 不更新图像[重复]

    这个问题在这里已经有答案了 这里有一些关于图像的 Flask 问题 但没有一个能解决我的问题 我有一个应用程序可以创建图像 保存它 然后显示它 一次 它应该多次执行此操作 每次更改图像时 它应该加载新图像 它不是 它只显示与其显示的文件名关
  • openpyxl:为一系列 Excel 单元格分配值或应用格式而不进行迭代

    我想应用特定格式或为一系列 Excel 单元格分配一个值 而不需要迭代每个单元格 我目前正在使用这个脚本 from openpyxl import Workbook from openpyxl styles import Font wb W

随机推荐

  • MySQL - 组内计数器

    我想根据升序变量为组中的每一行添加一个计数器 我有一个解决方案 但如果组内的某些变量相等 它就不起作用 CREATE TABLE tb g CHAR 1 x INTEGER INSERT INTO tb g x VALUES a 1 a 2
  • 如何使用JNA回调

    我正在使用 JNA 调用 dll 文件的函数 简单DLL h typedef int stdcall eventCallback unsigned int id int value namespace test class hotas pu
  • 在 ARM 资源组中运行的 Webrole 云服务

    到目前为止 我对使用 WebRoles 或 Worker Roles 进行 PaaS 部署的理解 旋转Web角色或工作者角色将创建云服务来管理它 然而 在ARM资源组中 他们没有云服务的概念 那么在ARM资源组中如何管理Web和Worker
  • 如何更改 Microsoft.AspNet.Identity.EntityFramework.IdentityUser 中的 id 类型

    ASP NET MVC 5 EF6 VS2013 我正在想办法将 Id 字段的类型从 string 更改为 int在类型中 Microsoft AspNet Identity EntityFramework IdentityUser 以便让
  • 决策树分类器抛出 KeyError: 'log_loss'

    我使用sklearn的决策树 通常有log loss classifier DecisionTreeClassifier random state 42 class weight balanced criterion log loss cl
  • NSLog 显示前一个日期

    我想检索两个日期之间添加的核心数据中的所有条目 我正在使用NSPredicate 由于我没有得到正确的结果 我尝试记录日期 它显示了以前的日期 在谷歌搜索一段时间后 我添加了 dateFormatter setTimeZone NSTime
  • 将 UITabBar 定位在顶部

    我是 iOS 开发的初学者 我的问题是 是否可以将 UITabBar 放置在顶部以及如何放置 我无法将 UITabBar 放置在视图的顶部 是否可以 当然可以 但它违反了人机界面准则 截图 Code TabController h impo
  • 如何更改 ggplot2 中特定几何图形的大小?

    我有一个包含 2 层的 ggplotgeom point and geom line如下所示 gp lt ggplot data mtcars aes x disp y hp geom point size 3 geom line size
  • 如何在 HTML5 的画布中复制形状?

    我正在尝试使用 HTML5 构建一个半复杂且水平对称的形状 当我试图完成它时 我意识到如果我可以复制一半形状 镜像它并移动它以将两个图像连接在一起会更容易 我正在寻找如何镜像和移动形状的示例 但没有找到如何复制它的示例 显然 我希望不需要两
  • 加载配置文件时,Selenium 测试需要几分钟才能启动

    我只是想弄清楚是否有其他人看到他们的 Selenium 测试在将配置文件加载到 FirefoxDriver 时运行速度明显变慢 需要 2 分钟以上才能启动 如下所示 Selenium 是 Firefox 的默认配置文件 上述帖子的问题发起者
  • 关于dispatch_queue、重入和死锁的澄清

    我需要澄清如何dispatch queues 与重入和死锁有关 阅读这篇博文iOS OS X 上的线程安全基础知识 我遇到了这句话 所有调度队列都是不可重入的 这意味着如果 您尝试在当前队列上进行dispatch sync 那么 可重入和死
  • Python asyncio:处理可能无限的列表

    我有以下场景 Python 3 6 输入数据是从文件中逐行读取的 协程将数据发送到 API 使用aiohttp 并将调用结果保存到 Mongo 使用motor 所以有很多 IO 发生 代码是用async await 并且对于手动执行的单个调
  • PHP 保护 PDF 和 DOC

    我正在努力提供 pdf and doc文件发送给网站上的授权用户 用户只能在登录时看到文件选择页面 但这并不能阻止未经授权的用户在知道完整 URL 的情况下查看文档 如何防止未经授权的用户访问这些文件 答案很简单 Jonnix 在我打字时发
  • 如何通过一个请求更新数组对象的多个字段?

    id xxxxstoreid store products id xxxproductid name xxx img url 由于我无法预测更新请求 参数可能只有名称 也可能两者都有 这是我的查询 它更新成功 但如果参数中不存在其他字段 它
  • 如何使用 sympy 图的标记参数?

    同情者plot命令有一个markers范围 markers 指定所需标记类型的字典列表 字典中的键应该相当于 matplotlib 的plot 函数的参数以及与标记相关的关键字参数 我该如何使用markers范围 我失败的尝试范围包括 fr
  • bis_skin_checked="1" 是什么意思?使用 chrome 代码源视图时,它显示在我的大多数元素上?

    我很困惑 我不知道 chrome AKA 版本 73 的最新更新是否只是故意集成了此属性 但我得到了一个奇怪的属性 我没有添加到我的网页中 我想知道这意味着什么铬合金 铬浏览器 边缘浏览器 我应该关心这个吗 它仅在 Chrome 上显示 遗
  • SVG 图案和渐变在一起

    有没有办法使用过滤器或 SVG 中的任何方法将图案和渐变一起应用于元素 我不想创建重复的元素 任何形状 来实现此目的 它是维护开销 下图是我的预期输出的示例
  • 如何快速将“2017-07-11T06:52:15.948Z”转换为“JUL, 7 2017”

    我正在尝试将字符串转换为日期 然后再次将日期转换为字符串 我在下面尝试过 但它给了我一个零值错误 let string 2017 07 11T06 52 15 948Z let dateFormatter DateFormatter let
  • python中生成器对象的大小

    对于以下代码 import sys x i for i in range 1 11 print x print Before starting iterating generator size is sys getsizeof x prin
  • 体现大于魔法方法

    我需要一种 大于 的反射魔法方法 但似乎没有 情况是这样的 我有一个跟踪单位的课程 这就是所谓的财产 我有神奇的方法设置来处理比较 但是当我将属性放在右侧时它不起作用 这是一个例子 class Property def init self