我有一个函数(称为data_type
),它以<class 'int'>
的形式返回对象的类型。我需要此函数的输出来检查对象是int
还是float
还是str
。问题是我无法在data_type
ininstance
中使用输出,因为我需要将原始对象传递给它而不是它的类型。我所说的是我不能使用以下内容 -
isinstance(data_type(some_variable), float)
因为它转换为
isinstance(<class 'float'>, float)
即使对象属于float类型,它也会返回False
,因为class 'float'>
的类型本身就是type
。
我知道有些人会建议我改变我接近这个的方式,但我同意这不是解决问题的方法,但是我无法改变data_type
函数的输出类型。
我查看了types
模块,其中包含types.StringType
之类的内容但不幸的是,这只适用于python2。 python3无法使用该功能(这是我目前使用的,无法更改)。
所以问题是如何使用type
函数的返回来检查对象是否为str / float / int。
我需要选择类str
的对象,以及我正在使用的黑客
if str(self.dtypes[each_col]) == "<class 'str'>": ...
但我这样做并不舒服。还有其他方法可以做到这一点吗?