Python - isinstance返回false
Python - isinstance返回false
我在使用isinstance()
时遇到了问题。
我正在使用Python 2.7.8,并从shell运行脚本。
我要测试的array
元素包含一个数字,但这个函数返回false;使用 number.Numbers
:
import numbers ... print array[x][i] >> 1 ... print isinstance(array[x][i], numbers.Number) >>> False
我还尝试了这篇帖子中的方法:
import types ... print isinstance(array[x][i], (types.IntType, types.LongType, types.FloatType, types.ComplexType)) >>> False
从同一篇帖子中,我尝试了
isinstance(array[x][i], (int, float, long, complex))
我还尝试了这个解决方案,但没有成功。
所有的返回值都是false。
在这段内容中,问题出现的原因是变量value被赋值为一个字符串'1',而不是数字1。虽然这个字符串在打印时和整数1一样,但它实际上是一个字符串。因此,使用isinstance函数判断value是否是数字时返回False。
要解决这个问题,可以使用repr()函数打印出Python表示,或者使用type()函数来获取给定值的类型对象。这样可以明确地显示value是一个字符串,而不是整数。
对于实际的数值,可以使用isinstance()函数结合numbers.Number来判断是否是数字。导入numbers模块后,可以使用isinstance(value, Number)来判断value是否是数字,返回的结果是False。而isinstance(1, Number)的结果是True,说明整数1是一个数字。
通过这个问题的上下文,我们可以明确地知道变量value只是一个看起来像整数的字符串,而不是真正的整数。