python从对象中获取类名
Posted
技术标签:
【中文标题】python从对象中获取类名【英文标题】:python get class name from object 【发布时间】:2014-01-22 04:47:22 【问题描述】:我正在尝试返回一个版本号,以及实现异常的方法。
由于我的任何类都可能出现异常,因此我试图从对象中获取类名。
问题是,我得到的是一个元组而不是一个字符串:
def version_control(*args):
version = 1.0
print args
#Exception example:
print str(args.__class__.__name__)
if 'User' == args.__class__.__name__:
version = 12.3
return version
如何更改str(args.__class__.__name__)
,使其将类的名称作为字符串返回?
【问题讨论】:
不,您没有从args.__class__.__name__
获得元组;别的东西是错的。为什么不改用if isinstance(args, User):
?
【参考方案1】:
我得到一个元组而不是一个字符串
不,您得到的是 字符串 "tuple"
而不是 其他字符串,因为 args
是一个参数元组。
当您致电version_control(obj, 1, 2)
、args == (obj, 1, 2)
时。你想查看args[0]
,在这个例子中是obj
【讨论】:
对不起,我第一次使用 args,我想我可以用 kwargs 更轻松地解决这个问题? @HansdeJong:为什么关键字参数可以解决问题?使用位置参数调用您的函数;只需索引args
元组。这个函数有多少种不同的调用方式?
我希望能够将我的任何对象(来自我的大多数类)放入其中,并且仅在传递异常列表中的对象时提供异常版本pastebin.com/NGDHTN68 这似乎工作正常
当然,但是由于您没有向我们展示如何调用函数,我们也无法帮助您了解传入的参数。
我的借口,对于 django、python 和 *** 来说还是很新的。下次我尝试更精确以上是关于python从对象中获取类名的主要内容,如果未能解决你的问题,请参考以下文章