获取类型名称作为字符串

时间:2014-02-25 12:34:14

标签: python

我开发了一个对提供的输入进行操作的函数,如果它没有找到输入数据的类型作为unicode,则必须返回输入数据类型unicode。我可以通过将其硬编码为unicode来实现,但是将来如果我想要更改所需的数据类型,我不想相应地更改该字符串。因此,我将输入变量的数据类型保存在不同的文件中,如果不匹配,则返回该文件中所需的数据类型。但它会返回类似

的内容
Required Data Type - <type 'unicode'>

而不是<type 'unicode'>我希望它只返回unicode。请建议。

2 个答案:

答案 0 :(得分:7)

使用类型为__name__的属性:

>>> s = unicode(1)
>>> type(s).__name__
'unicode'

答案 1 :(得分:1)

以下是替代方案,适用于用户定义的类:

s.__class__.__name__

示例:

class A :
    pass

a = A()
type(a).__name__ # 'instance'
a.__class.__name # 'A'

s = u"string"
type(s).__name__ # 'unicode'
s.__class.__name # 'unicode'