Python ctypes c_float.value 不返回值

标签 python ctypes

我正在编写一个 Python 脚本,该脚本旨在打印结构中的所有值以及值名称。结构中的值都是 ctypes,但我无法打印它们。就目前而言,当我运行以下代码时

import ctypes

class test(ctypes.Structure):
    pass
test._fields_ = [
    ('a', ctypes.c_float),
    ('b', ctypes.c_float),
    ('c', ctypes.c_float)]

d = test(1, 2, 3)

for field in d._fields_:
    print field[0], field[1].value

我明白了

a <attribute 'value' of '_ctypes._SimpleCData' objects>
b <attribute 'value' of '_ctypes._SimpleCData' objects>
c <attribute 'value' of '_ctypes._SimpleCData' objects>

有什么想法吗?我认为 .value 应该从 ctypes 对象中获取值,但它似乎不想...

谢谢!

最佳答案

_fields_ 具有字段名称和数据类型。您需要名称,对于值,请使用内置的 getattr:

>>> for name, dtype in d._fields_:
...     print name, getattr(d, name)
... 
a 1.0
b 2.0
c 3.0

关于Python ctypes c_float.value 不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19988196/

相关文章:

python - 无法从 URL 获取参数 - 为什么我的 cgi.FieldStorage() 是空的?

python - 来自列表理解的结果顺序是否得到保证?

python - 通过将逗号分隔的列的值替换为基于另一个数据框的查找来创建新列

python - 如何使用 python boto 获取亚马逊 S3 中唯一文件夹的列表?

python - 如何使用指向自身的指针在 ctypes 中设置结构?

python - 多继承python问题

python - OS X 上的 Python ctypes '_as_parameter_' 和 'from_param' 的问题

python - 如何获取 ctypes.c_char_p 实例的指针地址

python - 功能无法正常工作

python - 在 Python 中使用并从 Apk 导入 .SO native 库