Python 比较 C API 中的对象

2023-11-26

给定两个PyObject*s,我如何在 C API 中比较它们?

我想到了a == b起初,但这显然是不正确的,因为它会比较指针而不是对象。我在找a == b (not a is b) Python C API 中的 Python 等效项。


您正在寻找PyObject_RichCompare功能:

PyObject *result = PyObject_RichCompare(a, b, Py_EQ);

来自文档:

PyObject* PyObject_RichCompare(PyObject *o1, PyObject *o2, int opid)

返回值:新的引用。

比较以下值o1 and o2使用指定的操作opid,它必须是其中之一Py_LT, Py_LE, Py_EQ, Py_NE, Py_GT, or Py_GE,对应于<, <=, ==, !=, >, or >=分别。这是 相当于 Python 表达式o1 op o2, where op是个 运算符对应于opid。返回比较的值 成功,或NULL失败时。

您可能还对PyObject_RichCompareBool功能,其作用与PyObject_RichCompare但返回一个整数而不是PyObject *。具体来说,1返回 true,0对于假的,以及-1对于一个错误。

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

Python 比较 C API 中的对象 的相关文章

随机推荐

  • 命名空间“<全局命名空间>”已包含“工作流”的定义

    我正在开展自定义工作流程活动 我使用代码生成工具 CrmSvcUtil exe 创建了自己的 helper cs 早期绑定实体类 当我尝试编译代码时 它返回以下错误 命名空间 已包含 工作流 的定义 来自 Helper cs 文件 有谁知道
  • 如何创建我的记录器?

    我使用 log4j 进行日志记录 我想修改方法 warn error 我想修改这个方法中的消息 那么 有什么办法 如何创建我自己的记录器呢 public class MyLogger extends Logger protected MyL
  • 在 R 中,如何逐行读取 CSV 文件并将内容识别为正确的数据类型?

    我想读取一个 CSV 文件 其第一行是变量名称 后续行是这些变量的内容 有些变量是数字 有些是文本 有些甚至是空的 file path file csv f file file r varnames strsplit readLines f
  • 安装时在 Inno Setup 中显示许可协议链接

    我正在为我的应用程序使用 Inno Setup 我想在安装时在 Inno Setup 中显示一个链接 许可协议 单独的许可协议向导除外 我想将此链接与某些任务结合起来 当用户单击该链接时 它将导航到特定的 URL 我知道我来晚了 以下代码脚
  • 为什么这个 Java 正则表达式会导致“非法转义字符”错误?

    我正在研究一个上一个问题的解决方案 尽我所能 使用正则表达式 我的模式是 d 4 w 3 0 1 9 12 0 9 3 01 01 0 9 2 0 3 0 5 0 9 2 根据 NetBeans 我有两个非法转义字符 我猜它与 d 和 w
  • 相当于Firestore中的.push?

    我正在尝试将以前使用实时数据库的 firebase 实现转换为使用 firestore 因为我喜欢集合的想法以及使用它的好处 我如何将以下内容实现为 firestore 等效项 firebase database ref documentP
  • Django 将现有字段更改为外键

    我有一个 Django 模型 以前看起来像这样 class Car models Model manufacturer id models IntegerField 还有另一种模型叫Manufacturer那id字段指的是 然而 我意识到使
  • Hibernate 在 HQL 中处理“@”字符时遇到困难

    使用 Hibernate 和 Spring Social 我正在尝试通过电子邮件地址查询数据库 当我执行此查询时 公共帐户 findAccountByUsername String 用户名 Session session sessionFa
  • $观察一个物体

    我想监视字典中的更改 但由于某种原因未调用监视回调 这是我使用的控制器 function MyController scope scope form name my name surname surname scope watch form
  • 是否可以终止正在运行的 Web Worker?

    我有一个网络工作人员使用 ajax 请求运行一项耗时的例行任务 我可以从主线程终止它们而不等待它们完成吗 这就是我生成和终止它的方式 button parse categories click function if parseCatego
  • 使用和不使用额外变量时的奇怪浮点行为,为什么?

    当我在 VC 2013 32 位 无优化 中运行以下代码时 include
  • C# 寻找相似颜色

    我想调用带有参数颜色的方法 但有很多颜色仅存在色度差异 我怎样才能找到与我的颜色只有一点点不同的颜色 例如 AntiqueWhite 和 Bisque Here s调色板 Bitmap LogoImg new Bitmap file1 jp
  • Android - 检测 URL mime 类型?

    在我的 Android 应用程序中 我有从数据库访问的各种 URL 然后打开 WebView 来显示该 URL 通常 该 url 看起来像这样 http www mysite com referral php id 12345 这些引荐链接
  • 将页面添加到活动管理

    我们想要向我们的管理添加一个帮助页面 并且我们正在使用活动管理 gem 此页面不与任何模型关联 因此我正在努力弄清楚如何让链接显示在每个页面的菜单栏中 我知道我有点晚了 但我通常都会迟到 D ActiveAdmin register pag
  • 禁用 EditText 闪烁光标

    有谁知道如何禁用闪烁的光标EditText view 您可以使用 xml 属性android cursorVisible false 或以编程方式 java view setCursorVisible false kotlin view i
  • 从 Java 调用 .NET 程序集:JVM 崩溃

    我有一个第三方 NET 程序集和一个大型 Java 应用程序 我需要从Java应用程序调用 NET类库提供的方法 该程序集不支持 COM 我已经在网上搜索过 到目前为止我有以下内容 C 代码 cslib cs using System na
  • 如何获取 30 天内的下一个最小日期并用作 SQL 中的参考点?

    我有一个记录子集 如下所示 ID DATE A 2015 09 01 A 2015 10 03 A 2015 10 10 B 2015 09 01 B 2015 09 10 B 2015 10 03 对于每个 ID 第一个最小日期是第一个索
  • 这个字符序列“\033[H\033[J””在 C 中起什么作用? [复制]

    这个问题在这里已经有答案了 我在一些随机网站上浏览过以下奇怪的字符序列 当编译并执行时 该序列清除了终端中所有先前的内容 它清除输出流中的缓冲区还是仅清除 tty 缓冲区 int main printf 033 H 033 J return
  • C# ping 我的世界

    所以找到了这个小代码片段 可以让你在 PHP 中 ping Minecraft 服务器 但现在我想在 C 中执行此操作 我尝试自己这样做 但由于某种原因它不起作用 UdpClient client new UdpClient IPEndPo
  • Python 比较 C API 中的对象

    给定两个PyObject s 我如何在 C API 中比较它们 我想到了a b起初 但这显然是不正确的 因为它会比较指针而不是对象 我在找a b not a is b Python C API 中的 Python 等效项 您正在寻找PyOb