在CPython的,這個工程:PyPy:獲得原料訪問字符串
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中做同樣的事情?
只是檢查:你不使用這個東西在真正的代碼,對吧? – JBernardo
只是黑客/嘗試。因此,這應該在CPython中真正保存/保持穩定。有了這個,你可以做有趣的黑客攻擊,比如[this](https://github.com/albertz/playground/blob/master/test_importearlyexit.py)。 :) – Albert
對於無辜旁觀者(不是O.P. :-)):如果您需要一個可指定字符的可變字符串,請使用「bytearray」Python對象。 – jsbueno