Python 类型 'Instance' 转换

标签 python

我正在使用内置 SNMP 库从服务器获取一些数据。现在,当我取回它时,它在列表中显示为

.>>> [ObjectName(1.2.6.1.4.1.111.1.4.1.7), Integer(21)]

当我打印出x[0]时(假设 x 是该响应^)我看到 x[1] 为 1.2.6.1.4.1.111.1.4.1.7 和 21但当我这样做时type(x[0])我得到<type 'instance'> .

现在我的问题是有没有办法找到 x[1] 的类型并将其转换为那个? ( x[0] 始终是字符串,但 x[1] 可以是整数、字符串或 float 等。

有没有办法读取“Integer”(在本例中)?

谢谢

编辑:

我认为我没有描述清楚。我真的很关心x[0]无论如何,我想转换 x[1]无需修改我从中获取 SNMP 数据的类中的任何内容。在此示例中,它是 int但它可以是 float 或字符串。我正在寻找一种方法来确定该实例的类型,然后将其转换为该类型

最佳答案

你得到<type 'instance'>因为图书馆正在使用 old-style classes 。您可以使用 x.__class__ 获取类名。在您的示例中 x[0].__class__.__name__将是ObjectName .

关于Python 类型 'Instance' 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996265/

相关文章:

python - Tkinter 和 32 位 Unicode 复制 - 任何修复?

python - 将所有变量隔离到 sympy 中的 LHS?

python - 如何解决 PyCharm 2022.2.1(专业版)中请求中的本地路径 <path> 未在上传中注册的问题?

python - 变量的范围(局部全局和非局部)如何适用于 Python 中的 List 等可变对象?

python - 请求 Simpy 资源永远不会成功

python - Scrapy:先删除导出文件中的数据,再写入内容

python - 如何忽略配置单元插入查询中输入的开始

python - 如何在 PyBox2D 中绘制圆形

python - 如何在 python 中从顶部开始读取文件?

python - 如何加入绝对和相对网址?