加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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而不是直接处理类型对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读