使用C语言中的高级Python构造
对于使用高级Python构造,例如使用C语言编写的模块中的使用C语言中的高级Python构造,python,c,cpython,python-c-api,python-c-extension,Python,C,Cpython,Python C Api,Python C Extension,对于使用高级Python构造,例如使用C语言编写的模块中的threading.Condition和collections.deque,是否有任何最佳实践?特别是: 避免方法和成员的dict查找成本 尽可能直接访问C中的这些构造的部分 何时在本地重新实现所需功能,而不是从标准库的其他位置导入 在Python中,dict上的字符串查找非常便宜,但如果需要,可以将它们缓存在结构中 通常没有这样做的规定,因为这些库是通过Python而不是C访问的。仍然可以生成与C模块中的定义相匹配的标题,但它们需要按照
threading.Condition
和collections.deque
,是否有任何最佳实践?特别是:
请注意,大多数私有函数都是
静态的
,因此单靠标题是不起作用的。链接器会抱怨。如果它们不被导出,它们无论如何也不会在扩展模块中工作……我还要补充一点,提问者引用的两个示例模块都是结构和算法的高级重新实现,这些结构和算法可能以某种方式在C中可用。我自己不是C黑客,但我每天都用C++编程——我已经使用了C++的STL的代码> STD::DeQue/COD>和<代码> STD::MutX < /Cube >(它们是