python怎么调用方法_python中怎么调用自己的方法
展開全部
C/C++對Python的調(diào)用2113層次可5261以分為三個層次, (1) 高層次的調(diào)用, (2)純Python調(diào)用, (3) Python方法的4102擴展(也就使向Python輸出調(diào)用函數(shù)). 這里我主要1653討論(1)和(2)兩種方法.
1 高層次的調(diào)用
這是最簡單的一種在C/C++中調(diào)用Python的方法. 它直接的調(diào)用Python提供的C調(diào)用接口函數(shù), 這些函數(shù)主要有: PyRun_SimpleString(), PyRun_SimpleStringFlags(), PyRun_SimpleFile(), PyRun_SimpleFileEx()和PyRun_SimpleFileExFlags()幾個. 函數(shù)的具體用法參考Python的文檔.
這里舉個例子來說明這種層次的用法:
由這個例子可見, 在C/C++中調(diào)用Python的內(nèi)容非常簡單, 只要構(gòu)造一個簡單的Python調(diào)用字符串.這里要注意的就是, Python調(diào)用串語句之間要用'/n'來分開, 且語句之間不能有空格, 如上面的Python字符串不能寫成: "import sys/n print sys.path" , 否則要出錯的.
// c/c++ 中 Python 調(diào)用必須的頭文件
#include
//
int main(int argc, char* argv[])
{
// 初始化Python解析環(huán)境
Py_Initialize();
// 構(gòu)造Python執(zhí)行腳本
char szPyScript[128];
sprintf(szPyScript, "import sys/nprint sys.path");
if(PyRun_SimpleString(szPyScript) != 0)
{
sprintf(stderr, "execute /'%s/'failed!", szPyScript);
return -1;
}
// 清除Python解析環(huán)境
Py_Finalize();
}
//
//
以上的例子也表明了在C/C++中調(diào)用Python的基本結(jié)構(gòu), 就是
(1) 先初始化Python環(huán)境然: Py_Initialize()
(2) 具體對Python的操作
(3) 清除Python環(huán)境
更復(fù)雜的一個使用高層調(diào)用的例子, 這個例子用PyRun_SimpleFile的例子.
這里值得注意是, 在Window中:
(1) 鏈接debug版本的時候會自動鏈接PythonXX(_d).lib庫, PythonXX_d安裝時是沒有安裝的, 所以要顯示的指定鏈接PythonXX.lib庫, 不知道VC6.0為什么還會去找PythonXX_d.lib, 在vs7.0不會.
(2) 編譯時要以 /MD(多線程DLL) 選項編譯(不論時debug版本還時release版本都一樣).
以上我在VC7.0中可以正確的運行, 在VC6.0這樣還不行, 可能和我使用的版本有關(guān)系(我用的版本是:Python24.lib). 有知道的請賜教!!
// c/c++ 中 Python 調(diào)用必須的頭文件
#include
//
int main(int argc, char* argv[])
{
// 初始化Python解析環(huán)境
Py_Initialize();
//
char szFile[] = "PyFile.py";
//sprintf(szPathFile, "%s//%s", szPath, szFile);
FILE* fp = fopen(szFile, "r");
if(PyRun_SimpleFile(fp, szFile) != 0)
{
fclose(fp);
sprintf(stderr, "PyRun_SimpleFile(%s) failed!", saFile);
return -1;
}
fclose(fp);
// 清除Python解析環(huán)境
Py_Finalize();
}
2 純Python調(diào)用
已贊過
已踩過<
你對這個回答的評價是?
評論
收起
總結(jié)
以上是生活随笔為你收集整理的python怎么调用方法_python中怎么调用自己的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机投屏电脑软件哪个好用
- 下一篇: python 抛出异常_python 异