在Python中,我知道python 3中存在某些方法,这些方法可以从现有的字节数组创建新的整数。但是,我正在寻找一种创建作为整数的字节数组引用的方法。这样,如果更改引用,则基础字节数组也将更改。
在C语言中,这将类似于以下操作:
int main(void) {
unsigned char bytes[4] = {1, 0, 0, 0};
int* int_ref = (int*)bytes;
*int_ref += 59;
printf("bytes is now %u %u %u %u\n",
bytes[0],
bytes[1],
bytes[2],
bytes[3]);
return 0;
}
以上程序将打印60
。我正在寻找一种在Python中执行此操作的方法。
答案 0 :(得分:1)
遵循这些思路的东西似乎与您想要的东西很接近
import _ctypes
def di(obj_id):
""" Reverse of id() function. """
# from https://stackoverflow.com/a/15012814/355230
return _ctypes.PyObj_FromPtr(obj_id)
def func(obj_id):
ba = di(obj_id)
ba[0] += 50
data = bytearray([1, 0, 0, 0])
func(id(data))
print('bytes is now {} {} {} {}'.format(*data)) # -> bytes is now 51 0 0 0