如何将具体类名称作为字符串?

时间:2009-02-06 18:18:10

标签: python

我想避免调用很多isinstance()函数,所以我正在寻找一种方法来将实例变量的具体类名称作为字符串。

有什么想法吗?

3 个答案:

答案 0 :(得分:159)

 instance.__class__.__name__

示例:

>>> class A():
    pass
>>> a = A()
>>> a.__class__.__name__
'A'

答案 1 :(得分:13)

<object>.__class__.__name__

答案 2 :(得分:8)

你也可以用类本身作为键创建一个dict,不一定是类名

typefunc={
    int:lambda x: x*2,
    str:lambda s:'(*(%s)*)'%s
}

def transform (param):
    print typefunc[type(param)](param)

transform (1)
>>> 2
transform ("hi")
>>> (*(hi)*)

这里typefunc是一个dict,它为每种类型映射一个函数。 transform获取该函数并将其应用于参数。

当然,使用'真正的'OOP

会好得多