我想避免调用大量的 isinstance()函数,所以我正在寻找一种方法来获得一个实例变量的具体类名作为字符串。
isinstance()
有什么想法吗?
instance.__class__.__name__
例如:
>>> class A(): pass >>> a = A() >>> a.__class__.__name__ 'A'
<object>.__class__.__name__
您还可以创建一个用类本身作为键的 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是映射每种类型的函数的结构图。transform获取该函数并将其应用于参数。
typefunc
transform
当然,使用“真正的”OOP 要好得多