当前位置: 首页 > 面试题库 >

模拟Python的内置打印功能

狄新翰
2023-03-14
问题内容

我试过了

from mock import Mock
import __builtin__

__builtin__.print = Mock()

但这会引发语法错误。我也尝试过像这样修补

@patch('__builtin__.print')
def test_something_that_performs_lots_of_prints(self, mock_print):

    # assert stuff

有什么办法吗?


问题答案:

print是python 2.x中的关键字,将其用作属性会引发SyntaxError。您可以通过from __future__ import print_function在文件开头使用来避免这种情况。

注意:您不能简单地使用setattr,因为除非print禁用该语句,否则不会调用您修改的print函数。

编辑:您还需要from __future__ import print_function在每个要print使用修改后功能的文件中使用它,否则它将被该print语句掩盖。



 类似资料:
  • 一个更有趣的模拟是允许我们研究本节前面描述的打印机的行为,回想一下,当学生向共享打印机发送打印任务时,任务被放置在队列中以便以先来先服务的方式被处理。此配置会出现许多问题。其中最重要的点可能是打印机是否能够处理一定量的工作。如果它不能,学生将等待太长时间打印,可能会错过他们的下一节课。 在计算机科学实验室里考虑下面的情况。平均每天大约10名学生在任何给定时间在实验室工作。这些学生通常在此期间打印两

  • 问题内容: 我最近切换了操作系统,并正在使用较新的Python(2.7)。在旧系统上,我曾经能够即时打印。例如,假设我有一个计算密集的for循环: 然后当代码完成每次迭代时,它将打印 但是,在我当前的系统上,python似乎缓存了stdout,因此终端空白了几分钟,然后输出: 短期内。然后,几分钟后,它将打印: 等等。如何在到达语句后立即进行python打印? 问题答案: 尝试在打印后调用冲洗标准

  • 问题内容: 谁能解释我在python shell中通过“打印”输出变量与当我只写变量名称以输出变量之间的区别吗? 当我用文本执行此操作时,我理解了差异,但理解为int或float-我不知道。 问题答案: 只需输入表达式(例如变量名),实际上就会输出该函数返回的结果表示形式,而将使用该函数将结果转换为字符串。>>> s =“ abc” 打印将产生与直接输入表达式相同的结果:

  • 问题内容: 我正在尝试用python制作文字游戏。但是一切顺利,我想创建一个函数,使我可以在终端上打印一些东西,但是戴着帽子看起来像打字。 目前我有: 输出为: 有没有办法消除字母之间的空格? 问题答案: 在Python2.x中,您可以使用代替: 在Python 3.x中,您可以将可选参数设置为空字符串:

  • 问题内容: 我正在尝试使用python模拟模块的函数(返回一些外部内容)。 我在导入模块的模拟函数时遇到了一些麻烦。 例如,在我有 我想嘲笑,以便它返回其他内容。 我正在尝试: 如果在另一个模块中被调用,它实际上似乎永远不会返回模拟对象。我在使用方法方面缺少什么吗? 请注意,如果我调用以下内容,则一切正常: 但是,如果从另一个模块内部调用,它将调用原始函数而不是模拟版本: 内容 所以我想我的问题是

  • 问题内容: 我需要在另一个类的此Java应用程序中编写打印功能的帮助。 这些功能与printAll我认为是正确的,而其他功能肯定是错误的。 我将在下面写下此问题所需部分的全部功能。 由于实际上没有看到DictionaryADT令人困惑,因此我将其包含在此处。 问题答案: 如果DictionaryADT是具有所有实际实现的类,则需要调用 我相信您然后在DictionaryADT中有Map,类似 要获