首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式向交互式Python注入行?

如何以编程方式向交互式Python注入行?
EN

Stack Overflow用户
提问于 2013-10-22 02:30:03
回答 1查看 144关注 0票数 1

考虑一下这个小的交互式Python会话:

代码语言:javascript
复制
>>> a = 'a'
>>> b = 'b'
>>> ab = a + b
>>> ab
'ab'

有什么办法可以用编程的方式吗?我想注入一行一行和单元测试的结果在最后。我不能像往常一样创建Python脚本并执行它,因为在交互式Python中有一些反应不同的代码(例如,inspect.getcomments())。我想在交互式Python中测试这种行为。我更喜欢Python3解决方案,但我怀疑该解决方案不会与Python2中的解决方案不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-22 03:21:25

要做到这一点,一种方法是使用Python的博士考试模块。它本质上像在Python中一样解析代码,然后断言输出与在该REPL中编写的内容相匹配。

代码语言:javascript
复制
$ cat foo
>>> a = 'a'
>>> b = 'b'
>>> ab = a + b
>>> ab
'ab'
$ python -m doctest foo
$ cat > bar
>>> a = 'a'
>>> b = 'b'
>>> ab = b + a # oops
>>> ab
'ab'
$ python -m doctest bar
**********************************************************************
File "bar", line 4, in bar
Failed example:
    ab
Expected:
    'ab'
Got:
    'ba'
**********************************************************************
1 items had failures:
   1 of   4 in bar
***Test Failed*** 1 failures.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19508028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档