【发布时间】:2017-04-26 16:43:09
【问题描述】:
最近我遇到了一个问题并且对可能的解决方案感到困惑, 代码部分是
// code part in result reader
result = map(int, input())
// consumer call
result_consumer(result)
这与它们如何工作无关,问题是当您在python2 中运行时,它会在结果获取部分引发异常,因此结果读取器可以处理异常,但如果python3 @987654324 @ 被返回,所以只有消费者才能处理异常。
是否有任何解决方案保持map 功能并处理python2 和python3 中的异常
python3
>>> d = map(int, input())
1,2,3,a
>>> d
<map object at 0x7f70b11ee518>
>>>
python2
>>> d = map(int, input())
1,2,3,'a'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>>
【问题讨论】:
-
除了
map之外,还有一个完全不同的错误,即input在 Python 3 上无法以这种方式工作。
标签: python-2.7 python-3.x python-internals