最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python模塊如何查看

 更新時(shí)間:2020年06月16日 17:07:54   作者:silencement  
在本篇文章中小編給大家整理的是關(guān)于python的模塊位置的相關(guān)知識(shí)點(diǎn),需要的朋友們可以參考下。

對(duì)于編譯型的語(yǔ)言,比如C#中的一個(gè).cs文件,Java中的一個(gè).java或者編譯后的.class文件可以認(rèn)為是一個(gè)模塊(但常常不表述為模塊);對(duì)于解釋型的語(yǔ)言會(huì)更加直觀些,比如PHP的.php文件,在Python中就是.py文件可以認(rèn)為是一個(gè)模塊。在“模塊”之上有“包”,主要是為了方便組織和管理模塊。比如C#中編譯后的.dll文件(但常常不表述為包Package,而是庫(kù)Library),Java將.class打包后的.jar文件,PHP的.phar文件(模仿Java包),在Python中一個(gè)特殊定義的文件夾是一個(gè)包,可以打包為egg文件。但對(duì)于解釋型語(yǔ)言“包”并沒(méi)有編譯成低級(jí)語(yǔ)言而后打包的意思,只是更加方便模塊化和管理模塊間的依賴(lài)。每種編程語(yǔ)言對(duì)于模塊和包管理都有一定的約定,不了解這些約定,那會(huì)給學(xué)習(xí)這種語(yǔ)言的帶來(lái)障礙。下面我想來(lái)梳理一下Python的這些約定。

一、Python查找模塊的路徑

運(yùn)行Python應(yīng)用或引用Python模塊,Python解釋器要有一個(gè)查找的過(guò)程??梢酝ㄟ^(guò)設(shè)置一個(gè)環(huán)境變量PYTHONPATH為Python增加一個(gè)搜索路徑,以方便查找到相關(guān)Python模塊(不同的操作系統(tǒng)環(huán)境變量的設(shè)置稍有不同,默認(rèn)以下都是WIndows環(huán)境),這與眾多應(yīng)用程序需要設(shè)置一個(gè)系統(tǒng)環(huán)境變量的道理是一樣的。在命令行中可以通過(guò)以下命令設(shè)置:

C:\Users\Administrator>set PYTHONPATH=E:/Project/Python/ModuleAndPackage/

進(jìn)入Python環(huán)境后可以,通過(guò)Python的sys.path屬性獲得當(dāng)前搜索路徑的配置,可以看到之前我們?cè)O(shè)置的路徑已經(jīng)在當(dāng)前搜索路徑中了。

C:\Users\Administrator>python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'E:\\Project\\Python\\ModuleAndPackage', 'C:\\Windows\\system32\\python27.zip','C:\\Python\\DLLs','C:\\Python\\
lib', 'C:\\Python\\lib\\plat-win', 'C:\\Python\\lib\\lib-tk', 'C:\\Python', 'C:\\Python\\lib\\site-packages']

>>>

也可以通過(guò)sys模塊的append方法在Python環(huán)境中增加搜索路徑。

>>> sys.path.append("E:\\Project\\Python\\ModuleAndPackage2")
>>> sys.path
['', 'E:\\Project\\Python\\ModuleAndPackage', 'C:\\Windows\\system32\\python27.zip','C:\\Python\\DLLs','C:\\Python\\
lib', 'C:\\Python\\lib\\plat-win', 'C:\\Python\\lib\\lib-tk', 'C:\\Python', 'C:\\Python\\lib\\site-packages','E:\\
Project\\Python\\ModuleAndPackage2']
>>>

二、Python中的模塊和包

前面已經(jīng)提到每個(gè).py文件都是可以認(rèn)為是一個(gè)Python模塊,.py文件中可以包含類(lèi)、方法、變量和常量(Python還沒(méi)有嚴(yán)格意義上的常量,只是約定大寫(xiě)的變量作為常量),文件內(nèi)也可以直接寫(xiě)所有的邏輯語(yǔ)句并在加載時(shí)從上之下直接執(zhí)行,這與其他解釋型語(yǔ)言是類(lèi)似的。例如我們選擇在文件夾ModuleAndPackage中創(chuàng)建一個(gè)文本文件person.py文件即創(chuàng)建了一個(gè)簡(jiǎn)單的Python模塊,其內(nèi)容如下:

# -*- coding: utf-8 -*-
ID = 1
name = "This person"
print name
def say(something):
  print name,'says', something

那么接下來(lái)我們就可以在Python環(huán)境中執(zhí)行person.py。我們可以直接像執(zhí)行一個(gè)批處理文件那樣執(zhí)行person.py,在cmd命令行輸入:

Python E:/Project/Python/ModuleAndPackage/person.py

本質(zhì)上任何一個(gè)Python應(yīng)用的入口模塊都是這樣被執(zhí)行的(像C#和Java中的main函數(shù)),但是引用一個(gè)模塊,就要建立運(yùn)行它的上下文環(huán)境。我們先設(shè)置一個(gè)環(huán)境變量PYTHONPATH,以便Python解釋器找到person.py模塊,然后import person模塊,即可訪問(wèn)其中的方法或變量。

C:\Users\Administrator>python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (
Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import person
This person
>>> person.say("hello")
This person says hello
>>> print person.name
This person
>>>

Python需要去某些固定的路徑下去查找Python模塊,上面我們?cè)O(shè)置在ModuleAndPackage中查找。但是這些路徑下也是有目錄層次的,Python是如何查找子目錄中的模塊呢?特別是引用第三方包時(shí),我們也需要知道一定的層次關(guān)系。實(shí)際上,Python通過(guò)目錄和文件構(gòu)建包結(jié)構(gòu),并且包是層層嵌套的,和目錄層層嵌套是一樣的,這樣就構(gòu)成了包內(nèi)的訪問(wèn)路徑(或者命名空間,也可以說(shuō)Python應(yīng)用的命名空間與其目錄和文件結(jié)構(gòu)是對(duì)應(yīng)了,似乎缺少了一些靈活,但也更簡(jiǎn)單)。例如我們?cè)贛oduleAndPackage文件夾下,創(chuàng)建一個(gè)文件夾animal,里面創(chuàng)建一個(gè)文本文件pet.py,其內(nèi)容如下:

# -*- coding: utf-8 -*-
ID = 2
name = "This pet"
print name
def run(somewhere):
  print name,'runs', somewhere

那么如何引用pet.py這個(gè)模塊呢?按照Python的約定,需要在animal文件夾中創(chuàng)建名為_(kāi)_init__.py的空文本文件,以標(biāo)識(shí)animal文件夾是一個(gè)包。倘若animal文件夾內(nèi)還有文件夾作為包,也必須包含__init__.py文件。這樣就層層標(biāo)識(shí)了訪問(wèn)的路徑。

>>> import animal.pet
This pet
>>> print animal.pet.name
This pet
>>> animal.pet.run("everywhere")
This pet runs everywhere
>>>

或者使用from關(guān)鍵字直接導(dǎo)入模塊內(nèi)的屬性或方法:

>>> from animal.pet import name,run
>>> print name
This pet
>>> run("everywhere")
This pet runs everywhere
>>>

知識(shí)點(diǎn)擴(kuò)展:

使用模塊有什么好處?

當(dāng)一個(gè)模塊編寫(xiě)完畢,就可以被其他地方引用。我們?cè)诰帉?xiě)程序的時(shí)候,也經(jīng)常引用其他模塊,包括Python內(nèi)置的模塊和來(lái)自第三方的模塊。

模塊還可以避免函數(shù)名和變量名沖突。相同名字的函數(shù)和變量完全可以分別存在不同的模塊中。但是也要注意,盡量不要與內(nèi)置函數(shù)名字沖突。

如果不同的人編寫(xiě)的模塊名相同怎么辦?為了避免模塊名沖突,Python又引入了按目錄來(lái)組織模塊的方法,稱(chēng)為包(Package)。

到此這篇關(guān)于python模塊如何查看的文章就介紹到這了,更多相關(guān)python的模塊在哪內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)

    Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)

    OpenCV用C++語(yǔ)言編寫(xiě),它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實(shí)時(shí)視覺(jué)應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你通過(guò)OpenCV實(shí)現(xiàn)圖像堆疊
    2022-04-04
  • Django框架ORM操作數(shù)據(jù)庫(kù)不生效問(wèn)題示例解決方法

    Django框架ORM操作數(shù)據(jù)庫(kù)不生效問(wèn)題示例解決方法

    本文詳細(xì)描述使用Django 的ORM框架操作PostgreSQL數(shù)據(jù)庫(kù)刪除不生效問(wèn)題的定位過(guò)程及解決方案,并總結(jié)使用ORM框架操作數(shù)據(jù)庫(kù)不生效的問(wèn)題的通用定位方法,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • 徹底卸載anaconda詳細(xì)教程(推薦!)

    徹底卸載anaconda詳細(xì)教程(推薦!)

    用anaconda更改我的python版本,就是出現(xiàn)了凍結(jié)無(wú)法更改等等之類(lèi)的問(wèn)題,擔(dān)心更新anaconda還是會(huì)出錯(cuò),于是打算卸載anaconda,重新下載一個(gè)安裝,下面這篇文章主要給大家介紹了關(guān)于徹底卸載anaconda的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python pytest裝飾器總結(jié)(實(shí)例詳解)

    Python pytest裝飾器總結(jié)(實(shí)例詳解)

    這篇文章主要介紹了Python pytest裝飾器總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Python批量更改文件名的實(shí)現(xiàn)方法

    Python批量更改文件名的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python批量更改文件名的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這樣的方法,需要的朋友可以參考下
    2017-10-10
  • 關(guān)于Python 列表的索引取值問(wèn)題

    關(guān)于Python 列表的索引取值問(wèn)題

    這篇文章主要介紹了Python 列表的索引取值,本節(jié)重點(diǎn)掌握多次索引取值的語(yǔ)法:列表[索引][索引],結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python中繞過(guò)反爬蟲(chóng)的方法總結(jié)

    python中繞過(guò)反爬蟲(chóng)的方法總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于python中繞過(guò)反爬蟲(chóng)的方法總結(jié)內(nèi)容,需要的朋友們可以參考下。
    2020-11-11
  • 利用Python?Difflib庫(kù)強(qiáng)大的文字比較功能快速輕松查重

    利用Python?Difflib庫(kù)強(qiáng)大的文字比較功能快速輕松查重

    這篇文章主要介紹了利用Python?Difflib庫(kù)強(qiáng)大的文字比較功能快速輕松查重實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • django rest framework 過(guò)濾時(shí)間操作

    django rest framework 過(guò)濾時(shí)間操作

    這篇文章主要介紹了django rest framework 過(guò)濾時(shí)間操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Python3爬蟲(chóng)全國(guó)地址信息

    Python3爬蟲(chóng)全國(guó)地址信息

    今天小編就為大家分享一篇關(guān)于Python3爬蟲(chóng)全國(guó)地址信息,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01

最新評(píng)論

报价| 曲阜市| 珲春市| 海宁市| 台东县| 永春县| 工布江达县| 台前县| 衡东县| 襄城县| 辉南县| 福清市| 建昌县| 玛纳斯县| 宁乡县| 郁南县| 额尔古纳市| 禄劝| 仪陇县| 安吉县| 黄龙县| 乐业县| 桃园县| 响水县| 淳化县| 商河县| 东方市| 江山市| 绥阳县| 苏州市| 盐边县| 嘉善县| 福建省| 平邑县| 兴隆县| 阳江市| 修文县| 大名县| 盘山县| 白山市| 南陵县|