python開源庫原理?
Python的官方文檔中有專門一個叫Python/C API的文檔,是Python暴露給用戶來編寫模塊的api,是用純c語言的,直接編譯生成dll或so動態(tài)鏈接庫,改擴展名為pyd就可以放到python目錄下的DLL文件夾里,在Python里直接import就行。
用這種方式你就基本能徹底理解Python中一切皆對象的概念,所有的所有都是一個叫PyObject的東西,就連代碼塊都是一個叫PyCode的東西。也會讓你逐漸注意到Python的垃圾回收機制里引用計數(shù)的東西,每次處理PyObject都需要考慮引用計數(shù)要不要加1,什么時候加1,這些都是手動的。
看了其他回答,有用cpython來調(diào)c++動態(tài)鏈接庫的,傻子才會這么干,low的一批。有用boost Python的,那玩意最近貌似不支持跨python版本了,其實boost Python就是對Python/C api進行封裝。