小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python3基礎(chǔ)入門(模塊)

 慶亮trj21bcn0z 2018-01-31

大家好我是黑客之家小編,黑客之家頭條號(hào)

分享黑客技術(shù),編程知識(shí),科技資訊

喜歡的朋友可以關(guān)注我的頭條號(hào)!

人生苦短,我用Python!

Python3基礎(chǔ)入門(模塊)

Python3教程

前面幾篇文章介紹了 Python3文件處理操作 Python3基礎(chǔ)輸入和輸出 ,本篇文章介紹下python的模塊相關(guān)知識(shí)。

python模塊是一個(gè)包含所有定義的函數(shù)和變量的文件,其后綴名是.py。模塊可以被別的程序引入,以使用該模塊中的函數(shù)等功能,這也是使用 python 標(biāo)準(zhǔn)庫(kù)的方法。

下面是一個(gè)使用 python 標(biāo)準(zhǔn)庫(kù)中模塊的例子。(File:ModuleTest.py)

Python3基礎(chǔ)入門(模塊)

執(zhí)行結(jié)果如下所示:

python3 ModuleTest.py test

Python3基礎(chǔ)入門(模塊)

  • import sys 引入 python 標(biāo)準(zhǔn)庫(kù)中的 sys.py 模塊;這是引入某一模塊的方法。

  • 2、sys.argv 是一個(gè)包含命令行參數(shù)的列表。

  • 3、sys.path 包含了一個(gè) Python 解釋器自動(dòng)查找所需模塊的路徑的列表。

import 語(yǔ)句

想使用 Python 源文件,只需在另一個(gè)源文件里執(zhí)行 import 語(yǔ)句,語(yǔ)法如下:

import module1[, module2[,... moduleN]

當(dāng)解釋器遇到 import 語(yǔ)句,如果模塊在當(dāng)前的搜索路徑就會(huì)被導(dǎo)入。

搜索路徑是一個(gè)解釋器會(huì)先進(jìn)行搜索的所有目錄的列表。如想要導(dǎo)入模塊 support,需要把命令放在腳本的頂端:

support.py文件代碼為:

Python3基礎(chǔ)入門(模塊)

test.py引入support模塊:

import support

support.print_func('Helllo')

一個(gè)模塊只會(huì)被導(dǎo)入一次,不管你執(zhí)行了多少次import。這樣可以防止導(dǎo)入模塊被一遍又一遍地執(zhí)行。當(dāng)我們使用import語(yǔ)句的時(shí)候,Python解釋器是怎樣找到對(duì)應(yīng)的文件的呢?這就涉及到Python的搜索路徑,搜索路徑是由一系列目錄名組成的,Python解釋器就依次從這些目錄中去尋找所引入的模塊。這看起來(lái)很像環(huán)境變量,事實(shí)上,也可以通過(guò)定義環(huán)境變量的方式來(lái)確定搜索路徑。搜索路徑是在Python編譯或安裝的時(shí)候確定的,安裝新的庫(kù)應(yīng)該也會(huì)修改。搜索路徑被存儲(chǔ)在sys模塊中的path變量,做一個(gè)簡(jiǎn)單的實(shí)驗(yàn),在交互式解釋器中,輸入以下代碼:

Python3基礎(chǔ)入門(模塊)

sys.path 輸出是一個(gè)列表,其中第一項(xiàng)是空串'',代表當(dāng)前目錄(若是從一個(gè)腳本中打印出來(lái)的話,可以更清楚地看出是哪個(gè)目錄),亦即我們執(zhí)行python解釋器的目錄(對(duì)于腳本的話就是運(yùn)行的腳本所在的目錄)。因此若像我一樣在當(dāng)前目錄下存在與要引入模塊同名的文件,就會(huì)把要引入的模塊屏蔽掉。了解了搜索路徑的概念,就可以在腳本中修改sys.path來(lái)引入一些不在搜索路徑中的模塊。

from…import 語(yǔ)句

Python的from語(yǔ)句讓你從模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中,語(yǔ)法如下:

from modname import name1[, name2[, ... nameN]]

例如,要導(dǎo)入模塊 fibo 的 fib 函數(shù),使用如下語(yǔ)句:

>>> from fibo import fib, fib2>>> fib(500)1 1 2 3 5 8 13 21 34 55 89 144 233 377

這個(gè)聲明不會(huì)把整個(gè)fibo模塊導(dǎo)入到當(dāng)前的命名空間中,它只會(huì)將fibo里的fib函數(shù)引入進(jìn)來(lái)。

From…import* 語(yǔ)句

把一個(gè)模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間也是可行的,只需使用如下聲明:

from modname import *

這提供了一個(gè)簡(jiǎn)單的方法來(lái)導(dǎo)入一個(gè)模塊中的所有項(xiàng)目。然而這種聲明不該被過(guò)多地使用。

深入模塊

模塊除了方法定義,還可以包括可執(zhí)行的代碼。這些代碼一般用來(lái)初始化這個(gè)模塊。這些代碼只有在第一次被導(dǎo)入時(shí)才會(huì)被執(zhí)行。每個(gè)模塊有各自獨(dú)立的符號(hào)表,在模塊內(nèi)部為所有的函數(shù)當(dāng)作全局符號(hào)表來(lái)使用。所以,模塊的作者可以放心大膽的在模塊內(nèi)部使用這些全局變量,而不用擔(dān)心把其他用戶的全局變量搞花。從另一個(gè)方面,當(dāng)你確實(shí)知道你在做什么的話,你也可以通過(guò) modname.itemname 這樣的表示法來(lái)訪問(wèn)模塊內(nèi)的函數(shù)。模塊是可以導(dǎo)入其他模塊的。在一個(gè)模塊(或者腳本,或者其他地方)的最前面使用 import 來(lái)導(dǎo)入一個(gè)模塊,當(dāng)然這只是一個(gè)慣例,而不是強(qiáng)制的。被導(dǎo)入的模塊的名稱將被放入當(dāng)前操作的模塊的符號(hào)表中。

__name__屬性

一個(gè)模塊被另一個(gè)程序第一次引入時(shí),其主程序?qū)⑦\(yùn)行。如果我們想在模塊被引入時(shí),模塊中的某一程序塊不執(zhí)行,我們可以用__name__屬性來(lái)使該程序塊僅在該模塊自身運(yùn)行時(shí)執(zhí)行。

說(shuō)明: 每個(gè)模塊都有一個(gè)__name__屬性,當(dāng)其值是'__main__'時(shí),表明該模塊自身在運(yùn)行,否則是被引入。

python模塊就介紹到這里!

如果您喜歡這篇文章可以點(diǎn)贊,關(guān)注,轉(zhuǎn)發(fā)!

更多黑客技術(shù),編程知識(shí),科技資訊請(qǐng)點(diǎn)擊關(guān)注按鈕!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多