成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細說明Python 源代碼編制技巧

開發 后端
對于Python語言來說,大家可以認識到,可擴展性是顯而易見的重中之重.我之前就了解到Python 源代碼需要在多種平臺上運行。

下面文章主要介紹下Python 源代碼的編制和一些常規技巧,這些內容都是一些門戶網站和技術論壇找到的,中間可能有不少錯誤是我沒有挑出的,歡迎大家指正,希望大家學習探討。

人電腦開始出現.個人電腦帶了形形色色的軟件包,用來處理文件.其中有電子表格文件、字處理文件。圖形編輯器文件.ABC 的用戶希望能用 ABC 寫個小程序,從他們的字處理文件讀出一些數據,然后把數據寫到電子表格里,或者反過來,但是他們望洋興嘆,只能怪 IO 的無能.

Bill Venners: 他們想處理文件,Guido van Rossum: 他們想處理的是數據,但是數據卻呆在文件里面.而 ABC 里沒有文件的概念,這讓事情復雜化了。Python 中的可擴展性Guido van Rossum: 讓 ABC 里的缺位的文件支持雪上加霜的是,要擴展 ABC 語言并非易事.如果你這樣想:“這個語言是用 C 實現的。

所以我們在它的標準庫里面加個讀文件的函數難道不就行了?”,那就大錯特錯了.ABC 是沒有標準函數庫一說的.它有的是內置命令。但是管這些命令的是 parser.ABC 也有內置函數,但是這些函數和運行時綁在了一起.要為這個語言的標準功能添磚加瓦簡直是難如登天。

Python 源代碼來說,我認識到,可擴展性是顯而易見的重中之重.我之前就了解到 Python 需要在多種平臺上運行.即,我知道我們要求 Python 在我們正在開發的 Amoeba 上,以及 UNIX 上運行。后者是我們作為桌面的操作系統.同時,我也想到了,我們也會需要他支持 Windows 和 Macintosh.我想到,這些系統上有些功能是共有的。

比如標準 IO 庫,但是還有些功能是不互通的.如果要在 Windows 的屏幕上畫些東西,你寫的代碼肯定和 Macintosh 和 Unix 上不一樣,而且編程的模式也會大相徑庭.后來,我為 Python 構思了一個具有相當靈活性的可擴展模型.我提出:“我們將會為這門語言提供一系列的內置對象類型。

比如 dictionary, 列表,各種數字類型,以及字符串.而且,我們也會讓第三方程序員能輕而易舉地在系統中加入他們自己的對象類型.”由于 ABC 是作為一種規模相對較小的語言設計的,所以它也不支持名字空間 (namespace).它只有函數和過程.你沒有辦法把函數和過程分組。

后來,雖然他們加入了一個名字空間的機制,但是我覺得那套機制太簡陋粗糙了.那時,我已經有了一些 Modula-2 和 Modula-3 的相關經驗,因此我決定把模塊 (module) 作為 Python 的主要編程單位之一.我決定讓 Python 有兩種不同的模塊:你可以用 Python 編寫模塊,但是也可以完全用 C 語言為 Python 編寫模塊.并且 C 語言寫的模塊可以實現新的數據類型。

提供新的對象.這個想法后被被證明是先見之明,因為我在 CWI 的同事,用戶,還有我自己都開始編寫我們自己用的擴展模塊.這些擴展模塊讓你能想干什么就干什么:調用圖形庫、數據流庫,還能操作各種數據格式。

Bill Venners: 如此說來,如果我用 C 語言寫了個模塊,那么我就能在自己的 Python 程序里面用上它,而且模塊中的數據類型就像 Python 親生的?Guido van Rossum: 一點沒錯.在 Python 源代碼 里面,使用模塊的方法就只有用 import 語句一途.Python 的 import 和 Java 的 import 有一點小小的不一樣,不過它們背后的思想是共通的。

一旦你 import 了某個模塊名,系統就會用幾種不同的辦法試圖找到這個模塊.我們會設置一個搜索路徑,用來在里面搜索不同類型的文件.如果你在為 import foo 找文件,那么它會最后找出一個叫 foo.py 或者 foo.so (Windows 上叫 foo.dll) 的文件。#t#

foo.py 是一個 Python 的源文件.Python 源文件將來會被解析并解釋執行.這個過程讓函數/過程得以為程序所用.foo.so 或者 foo.dll 是編譯好的機器碼。這種動態鏈接庫是用 C 或者 C++ 實現的,但也有人用 Fortran 編寫自己的擴展,這些擴展將來會鏈接到一些大型的 Fortran 庫上去。

Python 的角度來看,你使用事先編譯好的機器碼模塊的方式和用 Python 源代碼模塊沒什么區別.反正都是把它們 import 進來.你可以把模塊的內容列出來,看看里面都有什么.或者,如果你對模塊已經比較熟的話,就可以直接開始用它了。

Guido van Rossum: 一點沒錯.在 Python 里面,使用模塊的方法就只有用 import 語句一途.Python 的 import 和 Java 的 import 有一點小小的不一樣,不過它們背后的思想是共通的。一旦你 import 了某個模塊名,系統就會用幾種不同的辦法試圖找到這個模塊.我們會設置一個搜索路徑,用來在里面搜索不同類型的文件。

如果你在為 import foo 找文件,那么它會最后找出一個叫 foo.py 或者 foo.so (Windows 上叫 foo.dll) 的文件。foo.py 是一個 Python 的源文件.Python 源文件將來會被解析并解釋執行.這個過程讓函數/過程得以為程序所用.foo.so 或者 foo.dll 是編譯好的機器碼。

這種動態鏈接庫是用 C 或者 C++ 實現的,但也有人用 Fortran 編寫自己的擴展,這些擴展將來會鏈接到一些大型的 Fortran 庫上去。從 Python 的角度來看,你使用事先編譯好的機器碼模塊的方式和用 Python 源代碼模塊沒什么區別.反正都是把它們 import 進來。你可以把模塊的內容列出來,看看里面都有什么.或者,如果你對模塊已經比較熟的話,就可以直接開始用它了.

【編輯推薦】

  1. 有關Python系統文件進行介紹指導
  2. 如何正確的使用Python函數
  3. 對Python 構建工具進行詳細介紹分析
  4. PythonAndroid淺析Python優勢所在
  5. 如何使用Python模塊解析配置文件?
責任編輯:chenqingxiang 來源: 驅動之家
相關推薦

2010-03-01 10:39:18

Python源代碼

2010-02-22 16:26:21

Python編輯

2010-02-26 16:05:19

Python 源代碼

2010-02-26 10:24:43

Python源代碼

2009-12-14 17:57:21

NET 源碼

2010-02-22 17:54:07

Python工具

2010-01-05 16:12:55

Javascript匿

2010-02-04 10:58:29

Android 源代碼

2010-01-19 09:54:19

C++代碼

2010-02-22 16:40:22

Python解釋器

2009-12-28 09:26:09

ADO對象

2010-01-13 13:27:00

C++優化

2010-01-07 16:09:04

學習JSON

2010-03-18 16:53:56

骨干交換機

2010-02-22 13:20:58

Python中文問題

2010-02-23 11:18:25

Python 操作符

2010-02-26 09:42:52

Python線程池

2010-02-04 14:41:52

Android菜單類型

2014-09-16 09:57:56

INotifyProp

2009-12-07 18:06:46

WCF框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美一区在线 | 中文字幕三区 | 中文字幕1区2区 | 在线观看视频亚洲 | 在线视频中文字幕 | 蜜桃精品视频在线 | 天天躁人人躁人人躁狂躁 | 999久久久国产精品 欧美成人h版在线观看 | 久久久男人的天堂 | 三区在线 | 久久久久久久久99精品 | 日韩视频在线观看一区二区 | 久久久999精品 | 亚洲av毛片成人精品 | 在线视频日韩精品 | 国产一区二区三区久久久久久久久 | 一区二区三区亚洲 | 亚洲精品在线视频 | 免费看91| 超碰97在线免费 | 亚洲精品一区二区三区在线 | 成人高清在线 | 欧美一区二区三 | 久久久久久精 | 狠狠综合久久av一区二区小说 | 亚洲精品乱码久久久久久蜜桃91 | 久久免费视频在线 | 九九热免费在线观看 | 国产精品高清一区二区三区 | 国产精品视频网 | 欧美一级二级视频 | 人人澡人人爱 | 91免费视频观看 | 99re6在线视频| 国产精品178页 | 56pao在线| 欧美精品一区二区在线观看 | 中文久久| 成人视屏在线观看 | 成人精品鲁一区一区二区 | 日韩欧美中文 |