自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python語言開發(fā)中的六大應用方式

開發(fā) 后端
Python語言開發(fā)過程中有很多的知識需要我們詳細的學習。在這其中有六大主要的知識需要我們認真的對待。下面我們就看看相關問題。

Python語言開發(fā)的時候有很多知識需要我們不斷的學習。當然這不只是說說那么簡單。下面我們就來看看如何進行Python語言開發(fā)的學習。希望大家有所收獲。

“俗話”說:庫即是語言,語言即是庫。由此可見擁有一套高質量、具備良好可復用庫對于一門通用開發(fā)語言來說有多重要。這也的難怪“C + + 老爹”BjarneStroustrup? 逢人就大倒苦水:C++的庫還是太少,C++社群需要開發(fā)更多高質量的庫出來!

還好,為Python語言開發(fā)一套質量不錯的庫的復雜程度遠沒有C++來得復雜。而且Python社區(qū)同樣也深知庫的重要性。結果就是Python的發(fā)行版即奉上超過300個的標準庫(這還不包括專門針對Mac機的50 余個庫,誰讓那小子另類呢)。 300 多個庫中,絕大部分具備跨平臺能力(*NIX/Windows)。這些庫覆蓋了開發(fā)的方方面面,Python語言的用戶可以在一個典型命令行環(huán)境下(比如Linux Shell),僅僅利用標準庫即可完成絕大部分工作,同時無需考慮庫的各種兼容性問題。Python社群對于庫的重視可見一斑。

即便是擁有如此多的標準庫。這也似乎未能阻止Python語言開發(fā)社群的開發(fā)者們天馬行空般的思維。借助于動態(tài)語言簡潔、優(yōu)雅、靈活的表達能力,這些第三方的庫經(jīng)常展現(xiàn)出令人贊嘆的想象力。

好吧,現(xiàn)在讓我們在龐大的Python語言開發(fā)庫選取點滴,也許它能帶給我們一些另類的思考。

 

SQLObject

SQLObject 可以看做是Python語言開發(fā)領域的Hibernate。它也是目前python社區(qū)中最為成熟方便的O/R mapping工具。和Hibernate相比,SQLObject 利用了動態(tài)語言的獨有特性,通過靈活使用繼承、靈活使用MetaData?能力,能夠快速方便定義直接在程序中定義映射類,不用像Hibernate中那樣還需單獨定義一個XML文件。同樣,借助強大的動態(tài)能力,SQLObject 還擁有一個Hibernate所遠不及的功能,那就是SQLObject 的映射類可以在運行時動態(tài)改變自身結構,這也意味著數(shù)據(jù)庫中的表結構也可以在運行時進行改變。總之,對Hibernate略有了解的開發(fā)者均能迅速理解SQLObject。雖然我一直認為SQLObject 還遠未能將Python 的動態(tài)能力發(fā)揮到極致。不過這卻是一個良好的開始。也許我們可以在不久將來看到更多更具新意的O/R mapping 工具。

 

TurboGear?

自RoR(Ruby on Rails)在Web開發(fā)領域一夜成名后,在其它語言社區(qū),跟風之作也如雨后春筍一般涌現(xiàn)出來。雖然TurboGear?并非刻意模仿RoR 之作,不過它確確實實借著RoR流行潮流得到更多人的重視。與RoR相同,TurboGear?也是一個輕量級Web開發(fā)套件,通過幾個命令行工具能夠快速生成以數(shù)據(jù)庫為核心的基本框架代碼。典型的RoR 思想!這和許多開源框架的原則一樣——“避免重新發(fā)明輪子”。TurboGear?的Web 控制層使用CherryPy?;持久層使用SQLObject;模板使用Kid;AJAX使用MochiKit?。幾乎所有的重要的功能組件都源自第三方。TurboGear?自身更像一個黏合劑,把所有的功能組合在一起,并能夠形成力量的倍增。

 

4Suite

雖然Python語言開發(fā) 標準庫提供了XML處理工具,但是它只提供一些基本功能。如果你想獲得更為強大的XML 處理能力,4Suite是一個更好的選擇。

4Suite被稱為XML工具中“內行的選擇”。除了最基本的Dom-Like和SAX-Like處理庫外,4Suite 還提供XInclude,XPointer,XLink,XPath,XUpdate用于XML文檔的查詢、更新操作等等;提供XSLT完整處理能力。#t#

4Suite不光功能強大,性能也相當不錯。這主要是得益于其核心代碼部分采用C完成。這在需要處理大量XML文檔的地方,4Suite實在是一個完美的選擇。

 

Pyro

Pyro 的全稱是“Python Remote Objects”。按照字面即可理解Pyro 的功能:提供遠程對象。Pyro 為Python語言提供異常簡潔的RPC解決方案。其實Python 語言中不乏一些更加通用的遠程調用方案,例如都是基于XML 的XMLRPC和SOAP。那么 Pyro這樣的單純的Python遠程調用方案具有什么樣的優(yōu)勢呢?那就是性能與易用性。

由于動態(tài)語言具有強大反射能力,因此實現(xiàn)對象序列化對于Python語言開發(fā)來說簡直易如反掌。對象的序列化在Python中被稱為pickle,這是許多Python應用的核心機制。Pyro 也正是充分利用pickle 的威力,在網(wǎng)絡間提供遠程對象的調用。它的性能要遠遠超過使用XML 對遠程對象進行編碼/解碼。同時,它在接口調用設計上也非常簡潔。在服務器端和客戶端只需2、3 行代碼就完成對象的封裝與調用,遠比SOAP來得簡單輕松。

 

Twisted

上個月,Zope 3.2發(fā)布,在這個最新版中, 一個重要的變化就是:使用了近十年的處理Web請求的網(wǎng)絡框架代碼被放棄,取而代之是以Twisted 為核心實現(xiàn)的代碼。據(jù)稱這樣可以改善系統(tǒng)性能以及可擴展性。于是Twisted庫再一次成為了人們關注的焦點。 Twisted 的核心概念是非阻塞異步網(wǎng)絡服務器(所以它也被成為Python中ACE,如果你還不知道什么是 ACE,那么看看前面關于C++庫的文章),這是目前為止性能最好的網(wǎng)絡處理模型。也許是非阻塞異步處理的天生復雜性所致,Twisted 幾乎是我所見過的最復雜,最難用的Python庫。Twisted 的使用者需要面對大量新的概念和新的模式,這一點上和ACE 倒頗有幾分相似。陡峭的學習曲線,阻礙了很多人掌握Twisted 庫。這也許是想要獲得高性能所付出的必要代價。難怪 O’REYLLI在其出版的關于Twisted的書的封面引用了一只九頭怪蛇,還真是貼切。

 

Psyco

贊美Python語言開發(fā)的好話可以說一籮筐,那么它的缺點是什么?這還用問嗎,當然是性能。性能——已經(jīng)成為Python根深蒂固的老毛病了。不要說和C++/Java/C#這樣的語言相比,即使是和它的同門兄弟們——Ruby、Perl、PHP 這樣的腳本語言相比,Python的性能依然是最糟糕的。Python的設計者們似乎僅僅在乎語言機制的完美,幾乎不考慮性能。CPythony 引擎已經(jīng)發(fā)展了這么多年,查看其源代碼,性能優(yōu)化代碼少之又少。對象引用模型至今還在使用引用計數(shù)器的方式,至于發(fā)展一個JIT 引擎,算了吧,不要指望了。還好,Psyco 的出現(xiàn),帶給我們了一線希望。Psyco 通過將運行中字節(jié)碼編譯為二進制代碼從而大幅提升整個應用的性能,在某些環(huán)境中甚至能將速度提升一個數(shù)量級。雖然Psyco還不能視為一個真正意義上的JIT 的引擎,也無法像Java中的JIT 那樣提供完全透明的服務。但我們仍然要為Psyco的發(fā)展感到振奮。目前,在其最新版本中,只需兩行代碼的添加,就能使你的程序充分使用Psyco,從而提升性能。

 

 

責任編輯:張浩 來源: IT168
相關推薦

2020-02-17 09:42:09

編程語言JavaWindows

2009-05-14 17:24:18

2022-10-11 23:53:08

組件架構開發(fā)

2023-10-18 10:48:44

Python解釋器

2023-05-05 18:32:04

React開發(fā)工具

2012-09-03 14:21:07

2025-03-24 00:25:00

Go語言并發(fā)編程

2023-05-10 15:49:10

NLP語言模型

2018-02-24 05:40:02

2010-03-29 11:17:33

Oracle Spat

2024-10-22 14:42:14

2023-01-13 12:39:27

5G技術安全

2021-01-21 14:07:24

區(qū)塊鏈行業(yè)發(fā)展物聯(lián)網(wǎng)

2012-11-03 17:09:38

微軟Build 2012大Windows 8

2009-08-25 09:29:18

維護代碼

2022-05-27 08:00:00

漏洞AngularReact

2023-08-31 22:12:51

低代碼隱患技術

2022-01-23 10:44:39

零信任網(wǎng)絡安全網(wǎng)絡攻擊

2013-08-23 10:42:03

Hadoop

2021-08-12 14:31:52

邊緣計算云計算數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號