python中的变量类型检测
发布时间:2020-12-20 11:47:19 所属栏目:Python 来源:网络整理
导读:我正在研究在 python(2.5)中检测变量类型(列表与字符串)的方法,并且遇到了一些似乎过于复杂的其他答案. 我发现一个人可以做到 x.__class__.__name__ 获取包含类名的字符串.什么,如果有的话,这是错的?它不便携吗?什么时候会失败? 解决方法 问题是不同的类
我正在研究在
python(2.5)中检测变量类型(列表与字符串)的方法,并且遇到了一些似乎过于复杂的其他答案.
我发现一个人可以做到 x.__class__.__name__ 获取包含类名的字符串.什么,如果有的话,这是错的?它不便携吗?什么时候会失败? 解决方法
问题是不同的类可以具有相同的名称.
直接的示例是针对在不同模块中定义的类(例如,考虑通用名称,例如Node或Connection). 但是,即使在单个模块中也很容易证明这个问题: class A(object): pass B = A class A(object): pass C = A b = B() c = C() b.__class__.__name__ == c.__class__.__name__ => True type(b) == type(c) => False 如果您不必具有该类的字符串表示,只需使用通过调用type(obj)返回的类型对象. 当然,根据您使用它的方式,最好使用isinstance而不是直接处理类型对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |