相关疑难解决方法(0)

42
推荐指数
2
解决办法
6万
查看次数

检查Python 2.7和3.x中的变量是int还是long

我希望对在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中使用这个通用检查的最佳方法是什么?

python python-2.7 python-3.x

0
推荐指数
1
解决办法
1004
查看次数

标签 统计

python ×2

converter ×1

int ×1

python-2.7 ×1

python-3.x ×1

string ×1