擅长:python、mysql、java
<p>使用<code>bytearray</code>(根据@CheeseLover的回答)可能是正确的做法。我的建议是完全在<code>bytearrays</code>中工作,从而避免临时转换。但是:</p>
<p><a href="http://cython.readthedocs.io/en/latest/src/tutorial/strings.html#passing-byte-strings" rel="nofollow noreferrer">^{<cd3>} can be directly created from a Python string</a>(或<code>bytes</code>)-参见链接部分的末尾:</p>
<pre><code>cdef char * my_ptr = array
# you can then convert to a memoryview as normal in Cython
cdef char[:] mview = <char[:len(array)]>my_ptr
</code></pre>
<p>一些警告:</p>
<ol>
<li>请记住,<code>bytes</code>是不可变的,如果试图修改该memoryview很可能会导致问题</li>
<li><code>my_ptr</code>(因此<code>mview</code>)只有在{<cd8>}有效的情况下才有效,因此只要您需要访问数据,请务必保留对{<cd8>}的引用</li>
</ol>