擅长:python、mysql、java
<p>可以使用<a href="http://docs.python.org/library/ctypes.html" rel="noreferrer">ctypes</a>模块从共享库(Windows用户的dll)加载函数。我能够从C标准库加载<code>ffs()</code>函数,该函数包含在Ubuntu 10.10的<code>libc.so.6</code>中:</p>
<pre><code>>>> import ctypes
>>> libc = ctypes.cdll.LoadLibrary('libc.so.6')
>>> libc.ffs(136)
4
</code></pre>
<p>(注意,这使用基于1的索引)。显然,这与当前的跨平台不兼容;您需要根据正在运行的系统(从<code>sys.platform</code>或类似位置检测到)更改要加载的库的文件名。我甚至不能百分之百确定在不同的Linux发行版上会是相同的。</p>
<p>它也值得做一些适当的基准测试,看看它是否真的值得。如果经常调用它,但如果只是偶尔使用,那么与维护相比,Python实现的性能优势可能微不足道,以确保它在不同的平台上继续工作。</p>
<p>另一种选择是用C编写自己的函数实现,并给出一个Python包装器。然后你必须为你想要的每一个平台编译它,但是在保持速度优势的同时,你就省去了寻找正确库名的麻烦。</p>