雖然python是萬能的,但是對於某些特殊功能,需要c語言才能完成。這樣,就需要用python來呼叫c的**了
具體流程:
c編寫相關函式 ,編譯成庫
然後在python中載入這些庫,指定呼叫函式。
這些函式可以char ,int, float, 還能返回指標。
以下示例:
通過python呼叫c函式,返回"hello,world 字串"
新建c語言檔案 hello.c
touch hello.c
#include char*get_str()
編譯成庫
gcc -o hello.so --share -fpic hello.c
新建python指令碼
touch test.py
from ctypes import * dll = cdll("./hello.so") dll.get_str.restype = c_char_p str = dll.get_str() print(string_at(str, 11))
執行python指令碼
[feng@arch python_c]$ python test.py
hello,world
Python Python呼叫shell的方法
1.1 os.system command 在乙個子shell中執行command命令,並返回command命令執行完畢後的退出狀態。這實際上是使用c標準庫函式system 實現的。這個函式在執行command命令時需要重新開啟乙個終端,並且無法儲存command命令的執行結果。1.2 os.pop...
遞迴呼叫python python生成器,遞迴呼叫
生成器 什麼是生成器 只要在函式體內出現yield關鍵字,那麼再執行函式就不會執行函式 會得到乙個結果,該結果就是生成器 生成器就是迭代器 yield的功能 yield為我們提供了一種自定義迭代器物件的方法 yield與return的區別 1.yield可以返回多個值 2.函式暫停和再繼續是由yie...
c 呼叫lua,lua呼叫c
建立工程 引用lua的動態庫和工程專案的配置資訊 結合 main.lua指令碼檔案 print lua呼叫c lua呼叫c 結合部分 c 向lua堆疊寫東西 通過lua堆疊 lua通過lua全域性標量獲取返回lua堆疊再到c lua傳遞數字給c cgivelua wangcheng 22,1 lua...