当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何将具体类名称作为字符串?》经验,为你挑选了3个好方法。

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

有任何想法吗?



1> SilentGhost..:
 instance.__class__.__name__

例:

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


我更喜欢:`type(instance).__ name__`
对于A类,请使用以下命令:`A .__ name__`
如果你不想实例化该怎么办?你能得到班级的名字吗?(没有对象)

2> Morendil..:
.__class__.__name__



3> Javier..:

你也可以用类本身作为键创建一个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获取该函数并将其应用于参数.

当然,使用'真正的'OOP会好得多

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有