• <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>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Lupa - Python中調用Lua

            Posted on 2011-09-15 06:52 RTY 閱讀(1430) 評論(0)  編輯 收藏 引用 所屬分類: Python轉載隨筆 、Lua專題
            http://www.cnblogs.com/coderzh/archive/2010/11/29/lupa.html

            Lupa - Python中調用Lua

            Lupa將LuaJIT集成到了Python模塊中,可以在Python中執行Lua代碼。 比較有意思,也許以后用的著,記錄一下。

            基本用法:

            >>> import lupa
            >>> from lupa import LuaRuntime
            >>> lua = LuaRuntime()

            >>> lua.eval('1+1')
            2

            >>> lua_func = lua.eval('function(f, n) return f(n) end')

            >>> def py_add1(n): return n+1
            >>> lua_func(py_add1, 2)
            3

            >>> lua.eval('python.eval(" 2 ** 2 ")'== 4
            True
            >>> lua.eval('python.builtins.str(4)'== '4'
            True


            Lua中的Python對象 

            >>> lua_func = lua.eval('function(obj) return obj["get"] end')
            >>> d = {'get' : 'got'}

            >>> value = lua_func(d)
            >>> value == 'got'
            True

            >>> dict_get = lua_func( lupa.as_attrgetter(d) )
            >>> dict_get('get'== 'got'
            True

            >>> lua_func = lua.eval(
            ...     
            'function(obj) return python.as_attrgetter(obj)["get"] end')
            >>> dict_get = lua_func(d)
            >>> dict_get('get'== 'got'
            True


            Lua中的迭代循環: 

            >>> lua_copy = lua.eval('''
            ...     function(L)
            ...         local t, i = {}, 1
            ...         for item in python.iter(L) do
            ...             t[i] = item
            ...             i = i + 1
            ...         end
            ...         return t
            ...     end
            ... 
            ''')

            >>> table = lua_copy([1,2,3,4])
            >>> len(table)
            4
            >>> table[1]   # Lua indexing
            1


            Lua中的Table: 

            >>> table = lua.eval('{10,20,30,40}')
            >>> table[1]
            10
            >>> table[4]
            40
            >>> list(table)
            [
            1234]
            >>> list(table.values())
            [
            10203040]
            >>> len(table)
            4

            >>> mapping = lua.eval('{ [1] = -1 }')
            >>> list(mapping)
            [
            1]

            >>> mapping = lua.eval('{ [20] = -20; [3] = -3 }')
            >>> mapping[20]
            -20
            >>> mapping[3]
            -3
            >>> sorted(mapping.values())
            [
            -20-3]
            >>> sorted(mapping.items())
            [(
            3-3), (20-20)]

            >>> mapping[-3= 3     # -3 used as key, not index!
            >>> mapping[-3]
            3
            >>> sorted(mapping)
            [
            -3320]
            >>> sorted(mapping.items())
            [(
            -33), (3-3), (20-20)]


            (等等……)

             

            參考:

            1. http://pypi.python.org/pypi/lupa/0.18

            2. http://androguard.blogspot.com/2010/11/lupa-lua-from-python.html

            精品久久久久久无码专区不卡| 久久精品人人槡人妻人人玩AV| 国产欧美久久一区二区| 色综合久久中文字幕无码| 无码国内精品久久人妻| 99久久99久久精品国产片果冻| 色99久久久久高潮综合影院| 欧美精品乱码99久久蜜桃| 久久精品国产精品亚洲毛片| 国内精品久久久久久久涩爱| 少妇内射兰兰久久| 亚洲国产成人久久一区WWW| 国产精品一区二区久久不卡| 久久国产精品免费一区| 亚洲AV无码久久精品狠狠爱浪潮 | 亚洲精品美女久久久久99小说| 欧美伊人久久大香线蕉综合| 亚洲成人精品久久| 少妇精品久久久一区二区三区 | 久久影视综合亚洲| 国产综合久久久久| 色婷婷综合久久久久中文一区二区| 国内精品久久久久久中文字幕| 亚洲AV无码久久| 久久人人爽人人爽人人爽 | 国产三级久久久精品麻豆三级| 亚洲国产高清精品线久久 | 麻豆AV一区二区三区久久| 欧美性猛交xxxx免费看久久久| 欧美伊香蕉久久综合类网站| 伊人色综合久久天天人手人婷| 亚洲?V乱码久久精品蜜桃| 大美女久久久久久j久久| 久久99国产精品二区不卡| 久久99精品国产自在现线小黄鸭 | 久久久噜噜噜久久中文福利| 亚洲国产美女精品久久久久∴ | 色综合久久88色综合天天| 久久99国产亚洲高清观看首页| 成人国内精品久久久久影院| 久久国产乱子伦免费精品|