• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Kisser Leon

            這個(gè)kisser不太冷
            posts - 100, comments - 102, trackbacks - 0, articles - 0

            c++中嵌入python入門2

            Posted on 2007-05-17 11:28 kk 閱讀(5844) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++

            1. 一個(gè)有一個(gè)參數(shù)的例子

            python文件
            #Filename test2.py

            def Hello(s):
                print "Hello, world!"
                print s

            cpp文件
            #include <python.h>
            int main()
            {
             Py_Initialize();

             PyObject * pModule = NULL;
             PyObject * pFunc   = NULL;
             PyObject * pArg    = NULL;

             pModule = PyImport_ImportModule("test2");
             pFunc   = PyObject_GetAttrString(pModule, "Hello");
             pArg    = Py_BuildValue("(s)", "function with argument");

             PyEval_CallObject(pFunc, pArg);

             Py_Finalize();

             return 0;
            }

            注意,參數(shù)要以tuple元組形式傳入。因?yàn)檫@個(gè)函數(shù)只要一個(gè)參數(shù),所以我們直接使用(s)構(gòu)造一個(gè)元組了。

            2. 一個(gè)有兩個(gè)參數(shù)的例子

            python文件中加入以下代碼,一個(gè)加函數(shù)
            def Add(a, b):
                print "a+b=", a+b

            cpp文件,只改了兩行,有注釋的那兩行
            #include <python.h>
            int main()
            {
             Py_Initialize();

             PyObject * pModule = NULL;
             PyObject * pFunc   = NULL;
             PyObject * pArg    = NULL;

             pModule = PyImport_ImportModule("test2");
             pFunc   = PyObject_GetAttrString(pModule, "Add");//終于告別hello world了,開始使用新的函數(shù)
             pArg    = Py_BuildValue("(i,i)", 10, 15);//構(gòu)造一個(gè)元組

             PyEval_CallObject(pFunc, pArg);

             Py_Finalize();

             return 0;
            }

            其它的就類似了。。。基本上,我們知道了怎么在c++中使用python中的函數(shù)。接下來學(xué)習(xí)一下如何使用python中的

            class。

            附:Py_BuildValue的使用例子,來自python documentation:

                Py_BuildValue("")                        None
                Py_BuildValue("i", 123)                  123
                Py_BuildValue("iii", 123, 456, 789)      (123, 456, 789)
                Py_BuildValue("s", "hello")              'hello'
                Py_BuildValue("ss", "hello", "world")    ('hello', 'world')
                Py_BuildValue("s#", "hello", 4)          'hell'
                Py_BuildValue("()")                      ()
                Py_BuildValue("(i)", 123)                (123,)
                Py_BuildValue("(ii)", 123, 456)          (123, 456)
                Py_BuildValue("(i,i)", 123, 456)         (123, 456)
                Py_BuildValue("[i,i]", 123, 456)         [123, 456]
                Py_BuildValue("{s:i,s:i}",
                              "abc", 123, "def", 456)    {'abc': 123, 'def': 456}
                Py_BuildValue("((ii)(ii)) (ii)",
                              1, 2, 3, 4, 5, 6)          (((1, 2), (3, 4)), (5, 6))

            97精品依人久久久大香线蕉97| 国产一区二区精品久久凹凸| 国产成人综合久久精品红| 国产精品久久久久久久久软件| 一本久久a久久精品vr综合| 久久久一本精品99久久精品66| 久久精品国内一区二区三区| 欧美大战日韩91综合一区婷婷久久青草| 亚洲国产成人久久综合区| 99久久国产宗和精品1上映| 99久久国产热无码精品免费久久久久| 久久久不卡国产精品一区二区| 久久久久久亚洲AV无码专区| 亚洲国产精品无码久久久久久曰 | 韩国三级中文字幕hd久久精品| 久久久久av无码免费网| 久久99热这里只有精品国产| 国产午夜精品久久久久免费视| 亚洲国产天堂久久综合| 国产亚州精品女人久久久久久 | 伊人久久大香线蕉综合网站| 色综合久久中文综合网| 亚洲欧美日韩中文久久| 久久久久久免费视频| 久久久久国产一级毛片高清板| 蜜桃麻豆www久久| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 久久人人爽人人精品视频| 精品久久久久久综合日本| 亚洲va久久久噜噜噜久久天堂| 人妻精品久久久久中文字幕| 久久久久久久综合日本| 久久国产乱子伦精品免费午夜| 日本免费久久久久久久网站| 久久久久久久99精品免费观看| 91精品国产91久久久久福利| 国产成人久久精品激情| 久久久噜噜噜www成人网| 国产精品九九久久免费视频| 国产成人精品久久一区二区三区av | 久久精品女人天堂AV麻|