日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)Python教程:初學(xué)者必看的Python模塊講解

模塊

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供石阡企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為石阡眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

如果你從 Python 解釋器退出然后再進(jìn)入它,你所做的定義(函數(shù)和變量)都會(huì)消失。因此,如果你想寫(xiě)某些更長(zhǎng)的程序,你最好使用一個(gè)文本編輯器來(lái)為解釋器準(zhǔn)備輸入,然后以這個(gè)文件作為輸入來(lái)運(yùn)行程序。這也被稱(chēng)為創(chuàng)建一個(gè) 腳本。當(dāng)你的程序變得更長(zhǎng),你也許會(huì)想將它分成幾個(gè)文件方便管理。你也許還想在幾個(gè)程序中直接使用函數(shù)而不用在每個(gè)程序中拷貝函數(shù)定義。

為了支持這種特性,Python 可以把定義放入一個(gè)文件中然后在一個(gè)腳本或交互式解釋器實(shí)例中使用它。這個(gè)文件被叫做 模塊 (module),模塊中的定義可以通過(guò) 導(dǎo)入 進(jìn)入到其他模塊或者 主 模塊(你在頂層和計(jì)算器模式下執(zhí)行的腳本中可以訪問(wèn)的變量集合)。

一個(gè)模塊是一個(gè)包含 Python 定義和聲明的文件。文件是模塊名加上 .py 后綴。在一個(gè)模塊中,模塊名(字符串類(lèi)型)可以通過(guò)全局變量 __name__ 獲取。例如,使用你最喜歡的文本編輯器在當(dāng)前目錄下創(chuàng)建一個(gè)叫 fibo.py 的文件,這個(gè)文件包含以下內(nèi)容

# 斐波那契數(shù)模塊

def fib(n):    # 打印斐波那契數(shù)直到 n
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()

def fib2(n):   # 返回到 n 的斐波那契數(shù)
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result

現(xiàn)在進(jìn)入 Python 解釋器然后通過(guò)下面的命令導(dǎo)入這個(gè)模塊

>>> import fibo

這樣做不會(huì)直接在當(dāng)前環(huán)境中導(dǎo)入 fibo 中定義的函數(shù)名,只會(huì)導(dǎo)入名為 fibo 的模塊。使用模塊名可以獲取模塊中定義的函數(shù):

>>> fibo.fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'

如果你打算經(jīng)常使用一個(gè)函數(shù),你可以把它賦值給一個(gè)局部變量

>>> fib = fibo.fib
>>> fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

 模塊進(jìn)階

一個(gè)模塊可以包含可執(zhí)行聲明包括函數(shù)定義。這些聲明被用于初始化模塊。它們只在模塊被 第一 次導(dǎo)入時(shí)執(zhí)行。 [1](如果文件被作為腳本運(yùn)行它們也會(huì)被執(zhí)行)

每個(gè)模塊都有其私有的符號(hào)表,模塊中定義的所有函數(shù)將這個(gè)符號(hào)表作為全局符號(hào)表。因此,一個(gè)模塊的作者可以在模塊中使用全局變量而無(wú)需擔(dān)心與其他模塊的全部變量沖突。另一方面,如果你知道你在干什么,你同樣可以使用 模塊.變量 的方式來(lái)獲取一個(gè)模塊的全局變量。

模塊可以導(dǎo)入其他模塊。將所有 import 語(yǔ)句放在模塊(或者腳本,如果這個(gè)問(wèn)題重要的話)的開(kāi)頭不是必須的,但習(xí)慣如此。被導(dǎo)入的模塊名被放置于當(dāng)前模塊的全局符號(hào)表中。

 import 聲明的一種變體可以把一個(gè)模塊中的變量直接導(dǎo)入當(dāng)前模塊的符號(hào)表中。例如:

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

這樣做不會(huì)把模塊名引入本地符號(hào)表中(因此上面的例子里,fibo 沒(méi)有被定義)

還有一種導(dǎo)入聲明的變體可以導(dǎo)入一個(gè)模塊中定義的所有變量:

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

這會(huì)導(dǎo)入模塊中除了以下劃線(_)開(kāi)頭的所有名稱(chēng)。大多數(shù)情況下 Python 程序員不使用這個(gè)機(jī)制,因?yàn)樗鼤?huì)為解釋器引入一系列位置未知變量,從而有可能覆蓋你已經(jīng)定義的某些變量。

請(qǐng)注意,一般來(lái)說(shuō),使用 import * 導(dǎo)入模塊或包是不受歡迎的,因?yàn)檫@通常會(huì)降低代碼可讀性。但在使用交互型解釋器為了減少打字而使用它是允許的。

如果模塊名后緊跟 as, 那么 as 后的變量名會(huì)與被導(dǎo)入的模塊名綁定。

>>> import fibo as fib
>>> fib.fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

這與 import fibo 的方式導(dǎo)入相同,除了模塊現(xiàn)在被命名為 fib 而不是 fibo。

使用 from 時(shí)可以使用這個(gè)機(jī)制達(dá)到相同的效果:

模塊搜索路徑

 當(dāng)一個(gè)名為 spam 的模塊被導(dǎo)入時(shí),解釋器首先尋找同名的內(nèi)建模塊。如果沒(méi)有發(fā)現(xiàn)同名內(nèi)建模塊,解釋器會(huì)根據(jù) sys.path 提供的一系列路徑下尋找名為 spam.py 的文件。sys.path 根據(jù)下面這些位置進(jìn)行初始化:

包含輸入腳本的目錄(如果沒(méi)有指明文件則為當(dāng)前目錄)

PYTHONPATH 一個(gè)目錄的列表,語(yǔ)法與 shell 的 PATH 變量相同。

安裝依賴(lài)默認(rèn)路徑。


網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:初學(xué)者必看的Python模塊講解
文章網(wǎng)址:http://www.dlmjj.cn/article/dppippp.html