亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python - 模塊module

ranwu / 1510人閱讀

摘要:一什么是模塊中,一個文件就稱之為一個模塊。所有的內(nèi)置函數(shù)為避免模塊名沖突,又引入了按目錄來阻止模塊沖突的方法,稱為包。例如下列小程序以自建的模塊,編寫一個的模塊。如果在其他地方導(dǎo)入該模塊時,判斷將失敗,即僅在此模塊多帶帶運行時生效。


一、什么是模塊

Python中,一個.py文件就稱之為一個模塊。
那么使用模塊有什么好處呢?

(1)提高了代碼的可維護性。
(2)代碼不必從零開始,當(dāng)一個模塊編寫完畢后,就可以被其他地方應(yīng)用。
(3)可以避免函數(shù)名和變量名沖突,相同的函數(shù)名和變量可以存放在不同的模塊中,但是要注意盡量不要與內(nèi)置函數(shù)名字沖突。
Python所有的內(nèi)置函數(shù):https://docs.python.org/3/lib...

為避免模塊名沖突,python又引入了按目錄來阻止模塊沖突的方法,稱為(python package)。
一個abc.py的文件就是一個名字為abc的模塊,一個xyz.py的文件就是一個名字為xyz的模塊。假如abcxyz這兩個模塊名字與其他模塊沖突了,于是我們可以通過不同的包來組織模塊,避免模塊沖突。
則可為:

↓ mycompany      # 按目錄存放
     _init_.py   # 模塊名:mycompany
     abc.py      # 模塊名:mycompany.abc
     xyz.py      # 模塊名:mycompany.xyz

引入了包以后,只要頂層的包名不與別人沖突,那所有模塊都不會與別人沖突。
每一個包目錄下都會有一個_init_.py的文件,這個文件是必須存在的,否則python就把這個目錄當(dāng)成普通目錄,而不是一個包。
_init_.py可以是空文件,也可以有python代碼,因為_init_.py本身就是一個模塊。

二、使用Python自帶模塊

Python內(nèi)置了很多非常有用的模塊,只要安裝完畢,這些模塊就可以通過import立刻導(dǎo)入使用。
例如下列小程序:以自建的sys模塊,編寫一個hello的模塊hello.py 。

# !/usr/bin/env python    # -1-
# -*-coding:utf-8 -*-     # -2- 
_author_ = "xionglp"      # 使用_author_變量把作者寫進去

import sys   

def test(): 
    args = sys.argv  
    if len(args) == 1: 
        print ("hello,world!") 
    elif len(args) ==2: 
        print("hello,%s !"% args[1]) 
    else: 
        print("too many arguments!") 
if __name__ == "__main__":
    test()

說明:

注釋 # -1- :讓該.py文件直接在unix/linux/mac上運行

注釋 # -2- :.py文件使用標(biāo)準(zhǔn)UTF-8 編碼

import sys:導(dǎo)入sys模塊。之后便可以利用sys這個變量,訪問sys模塊的所有功能。
sys模塊有一個argv變量,用list存儲了命令行的所有參數(shù)。argv至少有一個元素,因為第一個參數(shù)永遠是該.py文件的名稱。

當(dāng)在命令行運行hello.py文件時,python解釋器就把一個特殊變量__name__置為__main__。如果在其他地方導(dǎo)入該模塊時,if判斷將失敗,即if僅在此模塊多帶帶運行時生效。因此這種if測試可以讓一個模塊通過命令行運行時執(zhí)行一些額外的代碼,最常見的就是運行測試。

在交互式環(huán)境(cmd)中導(dǎo)入該模塊:

>>> import hello                         
>>> hello.test()                   
hello, world! 
三、安裝使用第三方模塊

除了Python自己的包,還可以安裝安裝第三方模塊。第三方包安裝是通過包管理工具pip完成的。
一般來說,第三方庫都會在Python官方的pypi.python.org網(wǎng)站注冊。所以要安裝一個第三方庫,必須先知道該庫的名稱,可以在官網(wǎng)或者pypi上搜索。比如Pillow的名稱叫Pillow,因此,安裝Pillow的命令就是:pip install Pillow

步驟1:找到安裝Python路徑中的easy_install.exe,例如:D:PythonScripts

步驟2:打開cmd,輸入安裝命令:easy_install.exe pip (pip安裝成功)

步驟3:在cmd下執(zhí)行pip,輸入命令:pip install pillow

如下:

安裝成功后便可以使用Pillow了。其他常用的第三方庫還有:MySQL的驅(qū)動、用于科學(xué)計算的NumPy庫等等。

pip升級:
在使用pip進行安裝時,有時候會提示pip的版本太低,需要upgrade。提示會給出要執(zhí)行的語句,按照提示執(zhí)行就行。
執(zhí)行命令:python –m pip install –upgrade pip

四、模塊搜索路徑

我們也可以導(dǎo)入自己寫入的模塊。當(dāng)我們試圖加載一個模塊時,Python會在指定的路徑下搜索對應(yīng)的.py文件,如果找不到,就會報錯,例如:

默認情況下,Python解釋器會搜索當(dāng)前目錄、所有已安裝的內(nèi)置模塊和第三方模塊,搜索路徑存放在sys模塊的path變量中:

>>>import sys
>>>sys.path

如果我們要添加自己的搜索目錄,有兩種方法:

法一:直接修改sys.path,添加要搜索的目錄,這種方法是在運行時修改,運行結(jié)束后失效。

>>> import sys
>>> sys.path.append("/Users/xionglp/my_py_scripts")

法二:設(shè)置環(huán)境變量PYTHONPATH,該環(huán)境變量的內(nèi)容會被自動添加到模塊搜索路徑中。設(shè)置方式與設(shè)置Path環(huán)境變量類似。注意只需要添加你自己的搜索路徑,Python自己本身的搜索路徑不受影響。


【補充點能量】if __name__ =="__main__":

__name__:為系統(tǒng)變量,有兩個取值。當(dāng)模塊是被調(diào)用執(zhí)行時,取值為模塊的名字;當(dāng)模塊是直接執(zhí)行時,則該變量取值為__name__。

if __name__ == "__main__"實現(xiàn)的功能:可以讓模塊既可以導(dǎo)入到別的模塊中用,也可以自己執(zhí)行。

英文解釋說:make a script both importable and executeable

例如:新建模塊atest.py

# !/usr/bin/env python3
# -*- coding:utf-8 -*-
"a test module"
def addFunc(a, b):
    return a + b
print("a_test_module"s result is ", addFunc(1, 1))

新建模塊anothertest.py

# !/usr/bin/env python3
# -*- coding :utf-8 -*-
"another test module"
import  atest
print("調(diào)用another test module模塊執(zhí)行的結(jié)果時:",atest.addFunc(12,23))

運行:

D:Python_project>python atest.py
a_test_module"s result is  2
D:Python_project>python anothertest.py
a_test_module"s result is  2
調(diào)用another test module模塊執(zhí)行的結(jié)果時: 35

說明:當(dāng)運行anothertest.py的時候,先運行了atest.py,再運行anothertest.py。
若不希望出現(xiàn)atest的內(nèi)容,python提供了一個系統(tǒng)變量:__name__??梢园驯徽{(diào)用的測試代碼寫在if語句里,當(dāng)調(diào)用該module時,此時的__name__取值為該模塊的名字,所以if判斷為假,不執(zhí)行后續(xù)代碼如下:

if __name__ == "__main__":`
       print ("atest的計算結(jié)果:",addFunc(1,1))

則運行結(jié)果為:

D:Python_project>python anothertest.py
調(diào)用another test module模塊執(zhí)行的結(jié)果時: 35

此時我們就得到了預(yù)期結(jié)果,不輸出多余的結(jié)果。


? thanks for watching, keep on updating...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/42469.html

相關(guān)文章

  • python基礎(chǔ)教程:Python模塊(module)

    摘要:如果你這個腳本想要使用其它腳本里面的變量函數(shù)和類也是可以的,在你這個腳本里面用來導(dǎo)入要引用的腳本,而那個被引用的腳本就稱作模塊。 在此之前,我們運行一些簡短的Python代碼,都是通過Python解釋器(python或ipython)進行的,如果我們退出解釋器再重新運行解釋器后,上次敲進去的變量、函數(shù)等都不見了,沒有保存下來。為了保存我們曾經(jīng)寫過的代碼,就是要寫成.py文件,稱為腳本。...

    whinc 評論0 收藏0
  • Python標(biāo)準(zhǔn)庫系列之模塊介紹

    摘要:的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。已經(jīng)導(dǎo)入的模塊會保存在字典中。 Python的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。 模塊分類 內(nèi)置模塊 內(nèi)置模塊可以理解成當(dāng)你安裝好python環(huán)境之后,直接可以使用import導(dǎo)入的就是內(nèi)置模塊,...

    v1 評論0 收藏0
  • 充分理解 python -m mod

    摘要:最近在看的官方文檔,提到一個的用法,很是不理解,所以查找了很多文檔,并進行了如下總結(jié)。的用途定位并執(zhí)行該模塊。可讀取包內(nèi)任何文件內(nèi)容。如果沒有,則從查找,找到后載入內(nèi)存,并加入到字典,名稱也將導(dǎo)入到當(dāng)前模塊的命名空間。 最近在看 __main__ 的官方文檔 —— https://docs.python.org/3/library/__main__.html#module-__main...

    Allen 評論0 收藏0
  • Python相對導(dǎo)入導(dǎo)致SystemError的解決方案(譯)

    摘要:相對導(dǎo)入相對導(dǎo)入使用模塊的決定它是否在一個包內(nèi)。當(dāng)你是用類似進行相對導(dǎo)入的時候,點表明在包的層次中上升多少。所以,你不能在交互式會話中直接使用任何相對導(dǎo)入。 源題目與答案地址如下http://stackoverflow.com/questions/14132...。下面是我的翻譯(看作機翻也行),以及原文。 這個問題是如何解決在相對導(dǎo)入的時候,如果出現(xiàn)System Error的時候的解...

    ethernet 評論0 收藏0
  • Python 程序構(gòu)架淺析

    摘要:一概念通常的程序的構(gòu)架是指將一個程序分割為源代碼文件的集合以及將這些部分連接在一起的方法。的程序構(gòu)架可表示為一個程序就是一個模塊的系統(tǒng)。它有一個頂層文件啟動后可運行程序以及多個模塊文件用來導(dǎo)入工具庫。導(dǎo)入是中程序結(jié)構(gòu)的重點所在。 一、概念 通常的Python程序的構(gòu)架是指:將一個程序分割為源代碼文件的集合以及將這些部分連接在一起的方法。 Python的程序構(gòu)架可表示為: showImg...

    hss01248 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<