首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError: UnionC对象没有属性

AttributeError: UnionC对象没有属性
EN

Stack Overflow用户
提问于 2022-05-31 14:59:49
回答 1查看 88关注 0票数 0
代码语言:javascript
复制
def writepmc(self, type_a, type_d, datano_s, datano_e, value):
    # datano_s & datano_e = start & end number
    length = 8 + (datano_e - datano_s + 1)

    # c union datatype

    class UnionC(ctypes.Union):
        _fields_ = [
            ('cdata[N]', ctypes.c_char),
            ('idata[N]', ctypes.c_short),
            ('ldata[N]', ctypes.c_long),
            ('fdata[N]', ctypes.c_float),
            ('dfdata[N]', ctypes.c_double),
        ]

    union = UnionC()
    union.ldata[0] = value

    class Iodbpmc(ctypes.Structure):
        _fields_ = [("type_a", ctypes.c_short),
                    ("type_d", ctypes.c_short),
                    ("datano_s", ctypes.c_short),
                    ("datano_e", ctypes.c_short),
                    ("u", union)]

    iodbpmc = Iodbpmc()

    iodbpmc.type_a = type_a
    iodbpmc.type_d = type_d
    iodbpmc.datano_s = datano_s
    iodbpmc.datano_e = datano_e

    ret = focas.pmc_wrpmcrng(libh, length, ctypes.byref(iodbpmc))
    self.wrpmc_errorcheck(ret)
    return ret

我正在开发一个通用机器人,必须使用Python2.7。我还使用CTypes库。我总是在标题上搞错了,不知道我做错了什么。

我对Python中的CTypes或OOP没有太多的经验。有人知道是什么导致了这个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-09 09:08:28

我自己设法解决了这个问题。

我写道:

代码语言:javascript
复制
                class UnionC(ctypes.Union):
                    _fields_ = [
                        ('cdata', ctypes.c_char),
                        ('idata', ctypes.c_short),
                        ('ldata', ctypes.c_long),
                        ('fdata', ctypes.c_float),
                        ('dfdata', ctypes.c_double),
                    ]

我移走了:

代码语言:javascript
复制
union = UnionC()
union.ldata[0] = value

这些变化为我解决了问题。我很肯定上面两行是引起问题的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72450117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档