python generator object_python - 将生成器对象转换为列表以进行调试
只需在发电机上拨打help p即可。
lst = list(gen)
lst
请注意,这会影响不会返回任何其他项目的生成器。
您也无法在IPython中直接调用help p,因为它与列出代码行的命令冲突。
测试此文件:
def gen():
yield 1
yield 2
yield 3
yield 4
yield 5
import ipdb
ipdb.set_trace()
g1 = gen()
text = "aha" + "bebe"
mylst = range(10, 20)
运行时:
$ python code.py
> /home/javl/sandbox/so/debug/code.py(10)()
9
---> 10 g1 = gen()
11
ipdb> n
> /home/javl/sandbox/so/debug/code.py(12)()
11
---> 12 text = "aha" + "bebe"
13
ipdb> lst = list(g1)
ipdb> lst
[1, 2, 3, 4, 5]
ipdb> q
Exiting Debugger.
转义函数/变量/调试器名称冲突的一般方法
存在调试器命令help p和help pp,其将在help exec和prettyprint之后的任何表达式。
所以你可以按如下方式使用它:
$ python code.py
> /home/javl/sandbox/so/debug/code.py(10)()
9
---> 10 g1 = gen()
11
ipdb> n
> /home/javl/sandbox/so/debug/code.py(12)()
11
---> 12 text = "aha" + "bebe"
13
ipdb> p list(g1)
[1, 2, 3, 4, 5]
ipdb> c
还有一个help p命令,通过在表达式前加上help pp来强制调用,它强制调试器将表达式作为Python表达式。
ipdb> !list(g1)
[]
有关详细信息,请参阅help p,help pp和help exec(在调试器中)。
ipdb> help exec
(!) statement
Execute the (one-line) statement in the context of
the current stack frame.
The exclamation point can be omitted unless the first word
of the statement resembles a debugger command.
To assign to a global variable you must always prefix the
command with a 'global' command, e.g.:
(Pdb) global list_options; list_options = ['-l']
python generator object_python - 将生成器对象转换为列表以进行调试相关推荐
- python generator类型_python生成器(Generator)
生成器是一种特殊的迭代器,它提供了自定义迭代器的一种方式.生成器最牛逼的特点就是对延迟操作的支持,一次只返回一个结果,然后状态挂起,以便下次从此状态开始继续执行. python中有两种类型的生成器:生 ...
- Python | 输入逗号分隔的元素,转换为列表并打印
Input comma separated elements (integers), and converts it into list in Python. 输入逗号分隔的元素(整数),并将其转换为 ...
- Python小工具:将对象转换为不可变类型并计算其哈希值
在设计单元测试时,我们往往需要将运行结果与预期结果相比较.但是,如果运行结果是一个比较复杂的数据结构的话,那么我们可能需要将预期结果硬编码到代码中,或存储到文件中,都需要占用一定的空间.为了减少单元测 ...
- python从EXCEL中读取数据转换为列表
首先,安装xlrd库 我之前安装了Anaconda,Anaconda自带xlrd库,在这里安装xlrd库这一步就省略了. 代码实现 下面是代码部分 import xlrd as xd data =xd ...
- python tokenize_model_python-AttributeError:“令牌生成器”对象在Keras中没有属性“ oov_token”...
我正在尝试使用加载的令牌生成器对文本进行编码,但出现以下错误 AttributeError: 'Tokenizer' object has no attribute 'oov_token' 我包括以下 ...
- Python编程基础——序列:字符串、列表和元组
一.简介 Python序列指:它们的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员.包括:字符串(普通字符串和unicode字符串).列表.和元组类型. 因为这些类型 ...
- python中可迭代对象_什么是python中的可迭代对象(iterable object)?
我们经常在打印报错信息中和英文的文档中看到iter这个词根,可以组合成iterable/iterate等派生词.这个iter可以翻译成"迭代",这样iterable object的 ...
- python学习笔记之序列,内含列表和元组的常用方法
列表.元组和字符串的共同点: 都可以通过索引得到每一个元素 默认索引值总是从0开始 可以通过分片的方法得到一个范围内的元素的集合 有很多共同的操作符(重复操作符.拼接操作符.成员关系操作符) 列表和元 ...
- Python(迭代、三元表达式、列表生成、生成器、迭代器)
迭代 什么是迭代1 重复2 下次重复一定是基于上一次的结果而来 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在 ...
最新文章
- 分布式缓存技术memcached学习(一)——linux环境下编译memcahed
- 送给同事的5个新年计划
- android nfcDemo
- java 伪异步 netty,Netty(一) - 不死的达芬奇的个人空间 - OSCHINA - 中文开源技术交流社区...
- Mastering the Java CLASSPATH
- 一个游戏美术写给策划的快速入门(二)
- 543. 二叉树的直径
- 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法
- c++ stl队列初始化_声明,初始化和访问向量| C ++ STL
- 第五章(1)Libgdx应用框架之生命周期
- C语言,期末复习之编写程序返回三个整数中的中间数
- 2020年6月“省时查报告”十大热门报告盘点(附下载链接)
- 9 条非常强大的 JavaScript 技巧
- 法兰克机器人外部自动_行业数据 | 服务机器人销售额创新纪录:全球增长32
- 《别闹了,费曼先生》听书笔记
- 扩展欧几里得算法超详解
- jeff dean_Jeff Dean的构建大型分布式系统的软件工程建议
- openMSP430 介绍
- Windows注册表及常见子项
- 一个优秀的团队,就该这样定目标
热门文章
- addeventlistener不支持ajax_好程序员web前端学习路线分享了解AJAX是什么
- 第一章踏上python之旅_仙侠旅人传
- Leetcode每日一题:198.house-robber(打家劫舍)
- 多叉树/图结构维护问题转线性结构——dfs序
- 给 Sublime Text3 添加右键菜单
- python遇到的问题
- undefined reference to symbol' pthread_create@@GLIBC_2.2.5'
- android本地图片,Android中ImageView实现选择本地图片并显示功能
- 删除隐藏版本信息 版本回退_Visual Studio Code 2019 August版本发布,新功能尝鲜
- 计算机的社会应用PPT,《电子计算机的发展与应用》ppt说课稿信息技术七上.ppt...