bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

c調python函數 c++怎么調用python函數

C語言程序如何調用python程序

下面是一個例子:

成都創新互聯公司網站建設公司,提供成都網站設計、做網站、成都外貿網站建設公司,網頁設計,建網站,PHP網站建設等專業做網站服務;可快速的進行網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,是專業的做網站團隊,希望更多企業前來合作!

首先是python的一個簡單函數

class Hello:

def __init__(self, x):

self.a = x

def print(self, x=None):

print(x)

def xprint():

print("hello world")

if __name__ == "__main__":

xprint()

h = Hello(5)

h.print()1

下面是C語言

#include python3.4m/Python.h

#include stdio.h

#include stdlib.h

#include string.h

int main()

{

Py_Initialize();

// 將當前目錄加入sys.path

PyRun_SimpleString("import sys");

PyRun_SimpleString("sys.path.append('./')");

// 導入hello.py模塊

PyObject *pmodule = PyImport_ImportModule("hello");

// 獲得函數xprint對象,并調用,輸出“hello world\n”

PyObject *pfunc = PyObject_GetAttrString(pmodule, "xprint");

PyObject_CallFunction(pfunc, NULL);

// 獲得類Hello并生成實例pinstance,并調用print成員函數,輸出“5 6\n”

PyObject *pclass = PyObject_GetAttrString(pmodule, "Hello");

PyObject *arg = Py_BuildValue("(i)", 5);

PyObject *pinstance = PyObject_Call(pclass, arg, NULL);

PyObject_CallMethod(pinstance, "print", "i", 6);

Py_Finalize();

return 0;

}

編譯命令如下:

gcc pyapi.c -lpython3.4m -o pyapi

c/c++調用python中返回值為list的函數

在C/C++中調用了這個函數之后不是會返回一個PyObject對象嗎?那個對象就是一個List啊,然后使用PyList_Size()獲取它的大小,使用PyList_GetItem()去讀取其中的元素就ok了啊。

找下Python的C API Manual,里面這些函數的用法寫的很詳細的。

我在C++中調用python寫的函數為什么不行?

可以具體說一下是怎么調用的嗎,像我使用C/C++調用這個外部程序(例如Python程序)時,我是這么做的,通過命令行參數通信,給個模板,注意看我的注釋。

C的部分(用C++也行,不過不難,也不是重點):

#includestdlib.h

#includestdio.h

int main(){

char pic_dir[255],pic_dir[255],cmd[255];

printf("What is your pic_dir? (e.g. C:\\a.jpg)\n");

/*雖然我強烈認為命名上應該不用pic_dir而是用pic_path*/

scanf("%s",pic_dir);

printf("What is your pic_name?(e.g. b.jpg)\n");

scanf("%s",pic_name);

printf("so we are calling a python program to deal with those above, please wait...\n");

sprintf(cmd,"python process.py %s %s ",pic_dir,pic_name);

/*這里是一個關鍵點,python的運行目錄在你的PATH環境變量里有,如下圖最后一行*/

system(cmd);

return 0;

}

process.py:(部分內容,主要是在process方法定義后面加一點東西)

def process(pic_dir,pic_name):

...#(這里的語句體(suite)不用改, 加上后面兩句就行)

from sys import argv

process(argv[1],argv[2])

OK完成

如何在C語言中調用python函數

C語言不能直接調用Python源程序,但是可以通過進程調用來實現。

分享標題:c調python函數 c++怎么調用python函數
文章URL:http://vcdvsql.cn/article40/hhhieo.html

成都網站建設公司_創新互聯,為您提供網站營銷服務器托管Google網站改版自適應網站品牌網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計