打印对象如何会导致与 str() 和 repr() 不同的输出?

2024-01-06

我正在解释器上测试一些代码,我注意到一些意外的行为sqlite3.Row http://docs.python.org/library/sqlite3.html#sqlite3.Row class.

我的理解是print obj总是会得到相同的结果print str(obj),然后输入obj进入解释器将得到相同的结果print repr(obj),但是情况并非如此sqlite3.Row:

>>> print row       # the row object prints like a tuple
(u'string',)
>>> print str(row)  # why wouldn't this match the output from above?
<sqlite3.Row object at 0xa19a450>

>>> row             # usually this would be the repr for an object
(u'string',)
>>> print repr(row) # but repr(row) is something different as well!
<sqlite3.Row object at 0xa19a450>

I think sqlite3.Row必须是一个子类tuple,但我仍然不明白幕后到底发生了什么可能导致这种行为。谁能解释一下吗?

这是在 Python 2.5.1 上测试的,不确定其他 Python 版本的行为是否相同。

不确定这是否重要,但是row_factory http://docs.python.org/library/sqlite3.html#sqlite3.Connection.row_factory属性为我的Connection被设置为sqlite3.Row.


PySqlite 提供了特殊的本机钩子print,但它没有实现__repr__ or __str__。我想说这有点错过了机会,但至少它解释了您所观察到的行为。

查看 pysqlite 源码:https://github.com/ghaering/pysqlite/blob/master/src/row.c#L241 https://github.com/ghaering/pysqlite/blob/master/src/row.c#L241和Python文档:http://docs.python.org/c-api/typeobj.html#tp_print http://docs.python.org/c-api/typeobj.html#tp_print

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

打印对象如何会导致与 str() 和 repr() 不同的输出? 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • Pandas set_levels,如何避免标签排序?

    我使用时遇到问题set levels多索引 from io import StringIO txt Name Height Age Metres A 1 25 B 95 1 df pd read csv StringIO txt heade
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • Firebase Firestore:获取文档的生成 ID (Python)

    我可以创建一个新文档 带有自动生成的 ID 并存储对其的引用 如下所示 my data key value doc ref db collection u campaigns add my data 我可以像这样访问数据本身 print d
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是

随机推荐

  • Angular JS - 如何在 ng-repeat 中添加额外的 DIV

    我有一个数组a 1 2 3 4 5 6 Using ng repeat在这个数组上 我创建了 6 个divs 请参考这个plunker http plnkr co edit fe4nTUFQ9ojEyBsyrOtH p preview 有没
  • SQL 存档脚本

    我正在尝试将数据库中的表中的记录存档到存档数据库中的相同表 我需要能够对日期大于三年前的所有记录进行插入 然后删除这些行 然而 这个表有数百万条实时记录 所以我想在一次大约 100 到 1000 个块的循环中运行它 到目前为止 我的存储过程
  • 双三次插值如何工作?

    在阅读有关该主题的文本后 我发现它考虑了 16 个原始相邻像素 我想知道的是它如何计算新像素的颜色值 如果 16 个像素的颜色值已知 如何计算新像素的值 我认为这已经很好地解释了维基百科 http en wikipedia org wiki
  • 如何在 R 中为新函数绘制 CDF 和 PDF

    如何在 R 中绘制 CDF 和 PDF f lt function x 2 a b x 3 exp b x 2 a 范围从 0 到无穷大 我会使用这样的东西 因为我喜欢ggplot2 a lt 1 b lt 2 f lt function
  • Visual Studio 和 Unity 中使用 MDB 文件进行构建后事件

    我在 Unity 中的 MonoBehaviours 源代码不是 Assets 文件夹内的脚本 而是我作为插件添加的已编译 DLL 我在 Visual Studio 中为我的 C 项目添加了生成后事件 以尝试解决每次更改某些内容时都必须复制
  • Node.js 子进程——spawn 和 fork 之间的区别

    这似乎是一个基本问题 但我找不到任何文档 分叉和生成 Node js 进程有什么区别 我读过分叉是生成的一种特殊情况 但是使用它们每个的不同用例 重复是什么 Spawn 是一个旨在运行系统命令的命令 当您运行spawn时 您向其发送一个系统
  • 如何动态下载字体并将其安装到 iOS 应用程序

    客户希望通过 API 调用下载字体来动态地将字体添加到 iOS 应用程序中 这可能吗 我挖掘出的所有资源都展示了如何手动将 ttf 文件拖到 Xcode 并将其添加到 plist 中 是否可以下载字体并以编程方式在客户端上使用它 Thank
  • App Engine 实例中 /_ah/start 的日志

    我的 App Engine 实例中有一个映射到 url ah start 的 servlet 它似乎不起作用 我无法像处理所有其他请求那样从此 servlet 中找到日志记录信息 由于它应该作为单独的线程运行 因此我无法在自定义请求中手动测
  • 未能找到带有哈希字符串 android-23 的目标

    当尝试从 git github com osmdroid osmdroid 构建 OpenStreetMapView 时 出现以下错误 failed to find target with hash string android 23 D
  • 角度依赖注入导出函数

    我正在使用 apollo graphql 它有一个模块 里面有一个函数 export function createApollo httpLink HttpLink connectToDevTools true 在此函数内 您定义 grap
  • mysql n:m 关系:查找具有多个特定关系的行

    我有两个 SQL 表 产品 和 标签 它们具有 n m 关系 使用第三个表 product tags 我想使用查询来查找具有多个特定标签的每个产品 例如 查找与标签 1 23 和 54 相关的所有产品 有没有办法只用一个查询来做到这一点 您
  • 将驱动程序对象的单个实例传递给所有其他类(Testng 框架)

    我有一个在类示例中初始化的驱动程序对象 我也想将驱动程序对象传递给其他类 但我得到一个空指针异常 我的代码是 样本类 public class sample WebDriver driver Test priority 1 public v
  • 用于 POST 请求的 Django Rest 框架自定义过滤器

    在filters py中 我有一个CustomFilter定义了具有类型值的ComboSortFilter and IntegerListFilter 在views py中 我定义了一个ViewSet 它具有filter class Cus
  • 我可以使用在启动期间配置的 MvcJsonOptions 在自定义中间件中进行序列化吗?

    我正在构建一个带有用于全局异常处理的中间件的 ASP NET Core Api 在Startup类中 我配置了一些用于所有控制器的 JSON 选项 public void ConfigureServices IServiceCollecti
  • TensorFlow 的内存泄漏

    我的 TensorFlow 出现内存泄漏 我提到了Tensorflow 即使关闭会话也会发生内存泄漏 https stackoverflow com questions 35695183 tensorflow memory leak eve
  • Vue.js filterBy 在多个字段中搜索

    如何通过在多个搜索键中搜索来进行过滤 我正在尝试这样的事情 但是 当然 它不会起作用 tr AFAIK 没有记录 filterBy 自定义过滤器 但您可以使用method制作你自己的过滤器 var demo new Vue el demo
  • 只能使用绝对 URI 作为基地址

    请帮助获得例外using ServiceHost host new ServiceHost typeof HelloService HelloService 在下面的代码中 例外 只有绝对 URI 可以用作基地址 WCF 主机应用程序 cl
  • Redis 尝试连接到 Heroku 上的本地主机而不是 REDIS_URL

    我有一个 Rails 应用程序 它使用 Redis 进行后台作业 在 Heroku 上 我使用 Heroku Redis 插件 当我部署到 Heroku 时 出现以下错误 Redis CannotConnectError Error con
  • 为什么Android开发中一定要把这个Context作为参数传递呢?

    这是来自developer android com 上的课程 public void sendMessage View view Intent intent new Intent this DisplayMessageActivity cl
  • 打印对象如何会导致与 str() 和 repr() 不同的输出?

    我正在解释器上测试一些代码 我注意到一些意外的行为sqlite3 Row http docs python org library sqlite3 html sqlite3 Row class 我的理解是print obj总是会得到相同的结