999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python混合編程

2018-07-11 06:00:10薛建波羅佳
電子測試 2018年12期
關鍵詞:程序語言

薛建波,羅佳

(武漢虹旭信息技術有限責任公司, 湖北武漢,430074)

1 Python語言簡介

Python是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。其設計具有很強的可讀性,相比其他語言,Python具有特有的語法結構。Python支持廣泛的應用程序開發,從簡單的文字處理到web開發,以及數據庫操作。Python的特點有以下幾個方面:Python有相對比較少的關鍵字,結構簡單,語法定義明確。Python代碼使用空格對齊,更加便于閱讀和理解。每一個模塊有清晰的定義和調用說明,在軟件完成以后的維護很容易。Python的易于學習和編寫使其快速地流行。經過多年的發展和標準制定,Python提供了豐富的標準庫。這些庫文件安裝可以通過Python命令進行。庫文件的調用也十分簡單。如果標準庫中沒有目標程序源碼,用戶可以自己通過c或者C++自我實現。也可以通過API對C和C++進行調用。Python支持所有的商業數據庫的數據接口,支持GUI編程。提供成熟可靠的的web框架,簡化的web開發的過程。不同用途或者功能的軟件開發可能需要不同的語言進行編寫。特定的語言提供了良好數據操作和簡化后的編程邏輯。而Python提供了當前許多不同功能軟件開發、操作的庫。不同的程序,相同的語言進行實現,效率更高,兼容性更好。此外,Python還支持機器學習和創建數學模型。

2 基于Python的混合語言編程

使用Python進行混合編程有兩種方式:擴展和嵌入。擴展是通過C、C++等系統語言實現Python的功能模塊。嵌入是將Python解釋器加載到應用程序中,使程序能夠解釋運行Python語言寫成的腳本。兩者都需要調用C語言應用程序接口。

2.1 需要擴展Python語言的理由

(1)添加/額外的(非Python)功能,提供Python核心功能中沒有提供的部分,比如創建新的數據類型或者將Python嵌入到其它已經存在的應用程序中,則必須進行擴展編譯。(2)性能瓶頸的效率提升。解釋型語言一般比編譯型語言慢,如果某一個模塊處理的數據比較多,或者會頻繁的操作IO,整個程序的運行速度會降低,形成程序的瓶頸。但是如果將所有的程序都用低級語言編寫,會存在兩個問題:一是工程量太大,不符合軟件開發的初衷-高效率;二是有些模塊,Python的運行效率與低級語言運行效率相差不大,不需要重新編譯。(3)核心代碼加密。因為Python是解釋性語言,源代碼沒有私密性。將核心代碼由Python語言轉變為編譯語言就變得很重要。

2.2 擴展的典型程序結構

(1)創建應用程序的源代碼。(2)利用樣板來包裝代碼。(3)創建setup.py進行編譯,封裝為Python的庫。(4)通過Python解釋器運行。

3 應用舉例

下面以在Linux下面環境下進行文本檢索的實例,介紹基于Python的混合編程。該程序實現了對格式化的文本進行檢索,查找關鍵字,提取出包含關鍵字的數據段。程序運行環境:操作系統-Red Hat 4.4.7-3;編譯器-GCC 4.4.7;Python解釋器-Python 2.6.6。

3.1 創建程序源代碼

在頭文件中添加Python.h,里面包含了Python定義的所有的內部數據結構和C API函數原型。按照程序邏輯編寫文本處理函數體。通過GCC編譯其中的主程序。

3.2 進行模塊封裝

(1)對照C語言源代碼,在文件中為每個模塊的每一個函數增加PyObject* M_func()的包裝函數。包裝函數的目的是把python的值傳遞給c,再把c中函數的計算結果轉換成Python對象返回給python。

(2)將每個模塊增加一個PyMethodDef ModuleMethods[]的數組,為Python解釋器提供調用入口:

(3)增加模塊初始化函數void initMethod():

3.3 編譯測試

(1)編寫setup.py文件。

(2)執行setup文件,擴展的模塊會被導入至Python的調用庫。程序執行的時候,解釋器找到模塊的位置,進行調用。

(3)運行結果。在文本中找到的關鍵字數據,并且提取出了文本段。

在原始的文本數據量很大的情況下,擴展以后的數據檢索速度明顯快于純Python腳本檢索的速度。在此基礎上,加入Python的機器學習的庫文件進行程序功能的擴展,就能實現數據推薦功能。

4 結語

人工智能興起帶動了Python的發展。Google開源了Python機器學習源碼,提供大量標準的Python機器學習庫。Python的底層是由C/C++實現。運行速度低于編譯語言。隨著處理的數據量越來越大,對程序處理速度要求也會不斷提升。混合語言編程以后肯定會應用的更加廣泛。

猜你喜歡
程序語言
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
讓語言描寫搖曳多姿
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
多向度交往對語言磨蝕的補正之道
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
累積動態分析下的同聲傳譯語言壓縮
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
我有我語言
主站蜘蛛池模板: 国产极品粉嫩小泬免费看| 欧美在线国产| 91日本在线观看亚洲精品| 亚洲成人免费看| 99热在线只有精品| 国产午夜人做人免费视频中文| 热re99久久精品国99热| 色久综合在线| 久久黄色一级片| 国产亚洲高清在线精品99| 中文字幕亚洲电影| 国产亚洲高清在线精品99| 88av在线| 丁香亚洲综合五月天婷婷| 丝袜美女被出水视频一区| 亚洲第一天堂无码专区| 国产尤物jk自慰制服喷水| 亚洲欧美自拍一区| 亚洲第一网站男人都懂| www亚洲精品| 欧美一区二区三区国产精品| 国产精品2| 最新国产你懂的在线网址| 久久久久九九精品影院| 手机精品福利在线观看| 色综合天天视频在线观看| 99久久精品免费观看国产| 亚洲欧美日韩视频一区| 精品亚洲欧美中文字幕在线看| 成人国产精品视频频| 久久精品一品道久久精品| 狼友视频国产精品首页| 色综合狠狠操| 在线观看网站国产| 色偷偷综合网| 国产精品美女免费视频大全| 狠狠亚洲五月天| 亚洲欧洲日产国产无码AV| 国产国语一级毛片| 亚洲三级视频在线观看| 亚洲AⅤ综合在线欧美一区| 伊人久久久久久久| 日本三级欧美三级| 精品人妻系列无码专区久久| 国产精品丝袜视频| 高清无码手机在线观看| 亚洲av成人无码网站在线观看| 亚洲色成人www在线观看| 国产一区二区精品福利| 亚洲色图狠狠干| 午夜福利网址| 亚洲av无码牛牛影视在线二区| 国产日韩欧美一区二区三区在线 | 91成人免费观看| 国产精品jizz在线观看软件| 久久这里只有精品国产99| 国产精品区视频中文字幕| 国产精品不卡片视频免费观看| 国产在线拍偷自揄拍精品| 亚洲成a∧人片在线观看无码| 亚洲永久色| 亚洲男人天堂久久| 色偷偷男人的天堂亚洲av| 婷婷五月在线| 在线精品亚洲一区二区古装| 日韩天堂视频| 日韩 欧美 小说 综合网 另类| 青青青国产免费线在| 呦系列视频一区二区三区| 国产精品入口麻豆| 免费无码网站| 国产成人精品优优av| 成人日韩视频| 亚洲婷婷六月| 久久综合色播五月男人的天堂| 久久综合丝袜长腿丝袜| 亚洲日本中文字幕乱码中文| 亚洲国产成人麻豆精品| 毛片视频网| 日本欧美精品| 国产97公开成人免费视频| 99热这里只有免费国产精品 |