例如,我想检查一个字符串,如果它不能转换为整数(with int()),我该如何检测?
我希望对在Python 2.7及更高版本中运行的API函数进行输入类型检查.API将epoch作为参数,以毫秒为单位采用时间戳.我需要确保输入是正数.
根据值,Python 2.7将时间戳表示为a integer或a long.所以类型检查看起来像这样:
isinstance(timestamp, (int, long))
Run Code Online (Sandbox Code Playgroud)
但是,该long类型与intPython 3 合并.实际上,long类型不再存在.因此上述行会导致异常.相反,检查将如下所示:
isinstance(timestamp, int)
Run Code Online (Sandbox Code Playgroud)
为了与Python 2.7兼容,我尝试将时间戳转换为int.但是,long如果值超出integer范围,则转换操作仍会返回a .这意味着检查将在之后的任何时间戳失败Sun Jan 25 1970 20:31:23.另见这个问题的答案.
在两个版本的Python中使用这个通用检查的最佳方法是什么?