国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

python模塊如何查看

瀏覽:94日期:2022-07-21 08:47:13

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

一、Python查找模塊的路徑

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

C:UsersAdministrator>set PYTHONPATH=E:/Project/Python/ModuleAndPackage/

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

C:UsersAdministrator>pythonPython 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type 'help', 'copyright', 'credits' or 'license' for more information.>>> import sys>>> sys.path[’’, ’E:ProjectPythonModuleAndPackage’, ’C:Windowssystem32python27.zip’,’C:PythonDLLs’,’C:Pythonlib’, ’C:Pythonlibplat-win’, ’C:Pythonliblib-tk’, ’C:Python’, ’C:Pythonlibsite-packages’]>>>

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

>>> sys.path.append('E:ProjectPythonModuleAndPackage2')>>> sys.path[’’, ’E:ProjectPythonModuleAndPackage’, ’C:Windowssystem32python27.zip’,’C:PythonDLLs’,’C:Pythonlib’, ’C:Pythonlibplat-win’, ’C:Pythonliblib-tk’, ’C:Python’, ’C:Pythonlibsite-packages’,’E:ProjectPythonModuleAndPackage2’]>>>

二、Python中的模塊和包

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

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

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

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

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

C:UsersAdministrator>pythonPython 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type 'help', 'copyright', 'credits' or 'license' for more information.>>> import personThis person>>> person.say('hello')This person says hello>>> print person.nameThis person>>>

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

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

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

>>> import animal.petThis pet>>> print animal.pet.nameThis pet>>> animal.pet.run('everywhere')This pet runs everywhere>>>

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

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

知識點擴展:

使用模塊有什么好處?

當一個模塊編寫完畢,就可以被其他地方引用。我們在編寫程序的時候,也經(jīng)常引用其他模塊,包括Python內(nèi)置的模塊和來自第三方的模塊。

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

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

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

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 高清精品女厕在线观看 | 亚洲精品久久一区二区无卡 | 久久中文字幕久久久久91 | 亚洲欧美在线观看视频 | 狠狠色丁香婷婷久久综合不卡 | 免费在线亚洲视频 | 亚洲精品免费视频 | 亚洲第一中文 | 欧美在线视频看看 | 欧美一级毛片欧美大尺度一级毛片 | 日韩一级特黄毛片在线看 | 亚洲欧美日韩国产vr在线观 | 精品老司机在线视频香蕉 | 在线视频 自拍 | 男女乱淫真视频免费观看 | 欧美日本一区亚洲欧美一区 | 亚洲视频免费在线看 | a级高清观看视频在线看 | 美女双腿打开让男人桶爽网站 | 综合另类 | 亚洲成a人片在线观看中 | 久久999视频 | 曰韩三级| 久久手机在线视频 | 欧美高清色视频在线播放 | 免费观看黄色毛片 | 精品久久久久久中文字幕一区 | 狠狠色综合色综合网站久久 | 成人免费毛片视频 | 免费无遮挡毛片 | 国产亚洲精品福利片 | 毛片免费全部免费播放 | 精品国产免费第一区二区 | 欧美一区二区三区精品影视 | 毛片在线免费观看网站 | 国产一区在线观看免费 | 不卡一级毛片免费高清 | 美女扒开腿让男人桶 | 在线成人aa在线看片 | 成人网18免费视频 | 国产成人免费午夜在线观看 |