自定义代码.交互控制台

你好
我已经进行了子分类.
我写了一个"口译员".
口译员是可以提高的功能(评估)
MyError例外.我希望这些报告
位置(^)的指示如Python Interactive
口译员.
下面的代码执行此操作,但我不喜欢加薪
使用self.showsyntaxerror()之前的语法错误.
我该如何改进?我应该从Syntaxerror子类吗?
另一件事是 ^显示在
有问题的角色,我可以轻松纠正这一点,但是为什么?
狮子座
============================================== =====================
导入代码
类MyError(例外):
def __init __(self,msg,pos):
例外.__ init __(self,msg)
self.pos = pos
DEF评估(来源):
对于(pos,c)枚举(来源):
如果不是" 0123456789"中的c:
提高MyError("意外符号%s"%c,pos)
返回int(源)
类myconsole(code.intractiveconsole):
def raw_input(self,提示):
返回code.intractiveconsole.raw_input(self,'abc'+提示)
def runsource(self,source,filename =''):
尝试:
打印评估(来源)
除了MyError,E:
尝试:
se = syntaxerror(str(e),('',1,e.pos,source))
提高SE
除了:
self.showsyntaxerror()
如果__name__ =='__ main __':
myconsole().互动()
============================================== ====================
在这里,它在控制台上显示的内容:
leonhard@leovaio:〜/mypy $ python cons.py.py
Python 2.5.2(R252:60911,Jul 31 2008,17:28:52)
[GCC 4.2.3(Ubuntu 4.2.3-2ubuntu7)]在Linux2上
键入"帮助","版权","学分"或"许可"以获取更多信息.
(myconsole)
ABC >> 1234
1234
ABC >> 12E4
文件" ",第1行
12E4
^
SyntaxError:意外符号E
ABC >>>

标签: python

添加新评论