gpt4 book ai didi

python - ctypes指针问题

转载 作者:行者123 更新时间:2023-12-01 00:00:34 26 4
gpt4 key购买 nike

我正在阅读 ctypes 教程,我发现了这个:

s = "Hello, World"
c_s = c_char_p(s)
print c_s
c_s.value = "Hi, there"

但我一直在使用这样的指针:

s = "Hello, World!"
c_s = c_char_p()
c_s = s
print c_s
c_s.value

Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
c_s.value
AttributeError: 'str' object has no attribute 'value'

为什么当我以一种方式执行时,我可以访问c_s.value,而当我以另一种方式执行时,却没有值对象?

谢谢大家!

最佳答案

在第二个示例中,您得到了以下语句:

c_s = c_char_p()
c_s = s

ctypes 模块无法破坏 rules of Python assignments ,在上述情况下,第二个赋值将刚刚创建的 c_char_p 对象中的 c_s 名称重新绑定(bind)到 s 对象。实际上,这会丢弃新创建的 c_char_p 对象,并且您的代码会在您的问题中产生错误,因为常规 Python 字符串没有 .value 属性。

尝试一下:

c_s = c_char_p()
c_s.value = s

看看这是否符合您的期望。

关于python - ctypes指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com