在 CPython 中,这有效:
import ctypes
ctypes.pythonapi.PyString_AsString.argtypes = (ctypes.c_void_p,)
ctypes.pythonapi.PyString_AsString.restype = ctypes.POINTER(ctypes.c_char)
s = "abc"
cs = ctypes.pythonapi.PyString_AsString(id(s))
cs[0] = "x"
print s # will print 'xbc'
在 PyPy 中,它不是因为我不能以这种方式访问 C-API。
在 PyPy 中有什么方法可以做同样的事情吗?