python interactiveconsole使用_InteractiveConsole.raw_输入覆盖不起作用

在使用Python的InteractiveConsole时遇到输入问题,`input()` 函数在某些环境下无法正常工作,导致TypeError。通过覆盖`write`方法并尝试更改`sys.stdin`来模拟输入,但在不同Python版本和操作系统上表现不一致。在Ubuntu Python 3.4上,覆盖的`write`方法失效,而在Windows Python 3.5和Ubuntu Python 3.5+上,错误情况各异。解决方案可能需要深入理解控制台交互机制。
摘要由CSDN通过智能技术生成

使用时code.InteractiveConsole对于原始输入和写入,只使用write方法作为具有重写的基类。在>>> input()

''

>>> input("data? ")

Traceback (most recent call last):

File "", line 1, in

TypeError: bad argument type for built-in operation

空输入源于通常的控制台窗口(系统标准而不是覆盖)。在

这些是覆盖:

^{pr2}$

将方法添加到控制台实例的局部变量时,它仅适用于控制台命名空间。到目前为止,我在Windows上的Python3.5上测试了这一点。

编辑:奇怪的是,当我使用参数时,控制台上的Ubuntu-Python3.4+上的TypeError和windows上没有参数的情况一样。在Ubuntu-Python3.5+上,TypeError不会引发。

再次编辑:似乎我的write覆盖在Ubuntu-Python3.4上不起作用。发生了什么事

此列表可以让了解我们找到的解决方案:>>> class BasicTrigger(object):

instantValue = "Local value"

def read(self, length = 0):

return self.instantValue+"\n"

def readline(self):

return self.instantValue

>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值