中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中modlue和packages有什么區別

發布時間:2021-07-02 15:29:09 來源:億速云 閱讀:177 作者:Leah 欄目:大數據

Python中modlue和packages有什么區別,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

首先打開Pycharm(沒用過的可以先百度安裝,很簡單),左上角點

File--> New Project

Python中modlue和packages有什么區別

然后這里隨便取個名字,我這里叫做 packages_demo

其實這里說隨便,其實不管是什么編程語言,文件,函數的命名都是有講究的,盡量取的能代表你要做的事情,增加代碼易讀性。

Python中modlue和packages有什么區別

然后右鍵剛才新建的包的,選擇Python File,取名為setup.py 

Python中modlue和packages有什么區別

然后再點我們工程名字,選擇Directory,新建兩個文件夾, 一個取名為packages_demo。另一個叫demo。

Python中modlue和packages有什么區別

然后再packages_demo文件夾下面,新建兩個Python File,一個叫 __init__.py, 一個叫 __version__.py。順便再建一個Python File 叫firsrt.py 。另外在demo文件夾下新建一個Python File 叫做outer.py。

 好,現在我們的工程結構是這樣的:

Python中modlue和packages有什么區別

好,先停一下,我們講一下細節。

剛開始學Python的時候,可能你是在Python Shell 里面敲了一個print("Hello World !")

Python中modlue和packages有什么區別

后來你也可能也會在Shell里面寫個函數。但是等你關掉Shell 的時候,你寫的代碼就沒了,也就是沒有保存起來,問題就來了,寫的代碼都沒保存,那后面想用的時候就沒法用。

Python中modlue和packages有什么區別

所以你會在Shell里面選擇新建文件,然后保存,命名為demo.py。 然后這時候就可以在Shell里面import 進來你寫的demo 包了,這個包就是Python中的module,Python中的包包括內置的包和第三方包,內置的包不需要安裝,第三方包需要手動安裝,而一般的包都可以通過pip來安裝,那我怎么知道,那些可以用pip,那些不可以用pip呢? 你安裝一下,安裝成功了,就說明可以啊。。。

Python中modlue和packages有什么區別

另外一種安裝方式就是下載包的源代碼,然后執行 python setup.py install , 同樣也可以安裝,還有些包有.whl后綴的文件,這個也可以直接pip xxx.whl install 運行安裝, whl其實是已經編譯好的pyd文件,這樣在本地安裝的時候就不需要編譯,pyd文件是怎么產生的? 是我們在編譯.py文件的時候,Python解釋器自動生成的。

關于Python包還有一個需要掌握的就是 下面這個

Python中modlue和packages有什么區別

if __name__ == "__main__"

這一句是什么意思? 當我們在Shell里面import demo,并計算1,2的和的時候,下面那句并沒有輸出。然后我們Ctrl+F5,執行demo.py文件,他輸出結果:

Python中modlue和packages有什么區別

這就說明,if __name__ == "__main__"的作用就是說,下面的代碼只有在直接執行demo.py時才運行,而import 的時候是不執行的。

好,為了讓大家徹底理解,我我們在demo.py中加入一句,print(__name__) 

然后在Shell里面import demo 出現結果為demo。 然后調用demo的__name__方法。輸出也是demo。

然后直接運行demo.py,顯式的名字為 __main__,這你就明白了吧。。

Python中modlue和packages有什么區別

到這,關于module 需要了解的就這么多了,最后說一下,Python中的雙下劃線開頭表示的是特殊方法名。也就是說,name是Python中的一個特殊方法,所以加了雙下劃線。

我們用dir()方法可以查看demo這個module下面都定義了哪些方法

Python中modlue和packages有什么區別

可以看到這里除了add以外,還有幾個特殊方法,這個特殊方法,是Python預定義好的。

然后,注意一下,里面有個__package__的特殊方法,調用一下

Python中modlue和packages有什么區別

結果顯示為空,也就說它沒有package,其實這里也可以看出來,package是比module高一級的東西。

package在Python中的意思就是多個module組成起來就是package了。

關于package有兩點需要注意的,一是每個package下面需要包含 __init__.py文件,二是package的好處在于方便代碼管理和避免命名沖突。

好,然后我們回到開始讓大家新建的文件。其實就是新建了一個工程,在工程下面新建一個packages和一個module, 一個叫package_demo,一個叫demo。然后我們在first.py和outer.py下面隨便寫一點代碼:

first.py

print("This is first modlue")


def fun(x):
   return x * 2

outer.py

from packages_demo import first


def fun():
   return first.fun(x=3)

if __name__ == "__main__":
   results = fun()
   print(results)

然后看一下,setup.py 這個文件,這里要介紹的是setuptools這和包,這是一個Python自帶的包管理工具,可以編譯,安裝,管理Python的包。下面是一個簡單的demo展示,代碼很少,這樣就可以創建一個我們自己的package了。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from setuptools import find_packages, setup

NAME = 'packages_demo'

setup(
   name=NAME,
   version="0.0.1",
   packages=find_packages()
)

然后我們打開Pycharm下面的Terminal命令行,執行python setup.py install.

Python中modlue和packages有什么區別

這樣我們就安裝了一個自己寫的package。是不是很帥?

安裝完之后,文件夾下面多了這個三個文件夾,這個就是編譯好的Python的包

Python中modlue和packages有什么區別

然后我們也可以在我們的Shell里面直接調用了,這就表明,我們已經封裝好了一個Python的package,這個packages_demo就和平時用的os, sys, pandas等等包的原理沒有區別。

Python中modlue和packages有什么區別

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莆田市| 崇明县| 龙胜| 锦州市| 内黄县| 江陵县| 佛山市| 镶黄旗| 金秀| 嵊泗县| 驻马店市| 和顺县| 汝南县| 介休市| 高密市| 霍林郭勒市| 黄石市| 利川市| 墨竹工卡县| 沙洋县| 洪湖市| 孟津县| 通许县| 长兴县| 明水县| 灵石县| 安塞县| 津市市| 南汇区| 凤庆县| 兴山县| 贵南县| 什邡市| 滨海县| 通州区| 富顺县| 岢岚县| 兴宁市| 屯留县| 广汉市| 安顺市|