有没有办法在一般的python约定中为ctypes变量赋值?

时间:2016-02-09 10:03:42

标签: python ctypes

我已经定义了一个ctypes变量:

abc=ctypes.c_double.from_buffer(struct, STRUCT.field_1.offset)

abc表示具有类定义struct的ctypes结构实例STRUCT的field_1。稍后,如果我想修改abc的值,我必须这样做:

abc.value=1.0

也会像我预期的那样改变struct.field_1的价值。

修改abc的值后,我可能不知道abc的数据类型是什么,所以只需使用传统语法

abc=1.0

abc重新定义为普通的python变量,struct.field_1不会相应更改。如何使用传统的python语法更改struct.feild_1abc的值?

1 个答案:

答案 0 :(得分:1)

这是不可能的 - 在Python中,名称(或“变量”)的行为是不可配置的,只是对象(或“值”)的行为。普通旧foo =重新绑定一个名称,它不依赖于任何对象行为。

你可能会发现http://nedbatchelder.com/text/names.html有所解释。