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

Python模塊、包和發(fā)布模塊示例代碼

 更新時間:2023年01月31日 14:30:32   作者:天寒心亦熱  
模塊是python程序架構的一個核心概念,模塊名同樣也是一個標識符,需要符合標識符的命名規(guī)則,接下來通過本文給大家講解Python模塊、包和發(fā)布模塊,需要的朋友可以參考下

1.模塊

1.1模塊的概念

模塊是python程序架構的一個核心概念

  • 每一個以擴展名.py結尾的python源代碼文件都是一個模塊
  • 模塊名同樣也是一個標識符,需要符合標識符的命名規(guī)則
  • 在模塊中定義的全局變量、函數(shù)、類都是提供給外界直接使用的工具
  • 模塊就好比工具包,要想使用這個工具包中的工具,就需要先導入這個模塊

1.2模塊的導入方式

1.2.1 import導入

import 模塊名1,模塊名2

提示:再導入模塊時,每個導入應該獨占一行

import 模塊名1
import 模塊名2

導入之后

  • 通過 模塊名.使用模塊提供的工具 -- 全局變量、函數(shù)、類

使用as指定模塊的別名

如果模塊的名字太長,可以使用as指定模塊的名稱,以方便在代碼中的使用

import 模塊名1 as 模塊別名

注意:模塊別名應該符合大駝峰命名法

1.2.2 from...import導入

  • 如果希望從某一個模塊中,導入部分工具,就可以使用from...import的方式

  • import 模塊名 是一次性把模塊中所有工具全部導入,并且通過 模塊名/別名訪問
# 從 模塊 導入 某一個工具
from 模塊名1 import 工具名

導入之后

  • 不需要通過 模塊名.
  • 可以直接使用 模塊提供的工具 -- 全局變量、函數(shù)、類

注意

如果兩個模塊,存在同名的函數(shù),那么 后導入模塊的函數(shù),會覆蓋掉先導入的函數(shù)

  • 開發(fā)時import代碼應該統(tǒng)一寫在代碼的頂部,更容易及時發(fā)現(xiàn)沖突,一旦發(fā)現(xiàn)沖突,可以使用 as關鍵字 給其中一個工具起一個別名

1.2.3 from...import *(了解)

# 從 模塊 導入 所有工具
from 模塊名1 import *

注意

這種方式不推薦使用,因為函數(shù)重名并沒有任何提示,出現(xiàn)問題不好排查

1.3模塊的搜索順序(擴展)

python的解釋器在導入模塊時,會:

  • 搜索當前目錄指定模塊名的文件,如果有就直接導入,如果沒有,再搜索系統(tǒng)目錄

在開發(fā)時,給文件起名,不要和系統(tǒng)的模塊文件重名

python中每一個模塊都有一個內置屬性 __file__可以查看模塊的完整路徑

示例

import random
print(random.__file__)
# 生成一個 0-10 的數(shù)字
rand = random.randint(0,10)
 
print(rand)

注意:如果當前目錄下,存在一個random.py 的文件,程序就無法正常執(zhí)行了!

  • 這個時候,python的解釋器會加載當前目錄下的random.py 而不會加載系統(tǒng)的random模塊

1.4原則--每一個文件都應該是可以被導入的

  • 一個獨立的python文件就是一個模塊
  • 在導入文件時,文件中 所有沒有任何縮進的代碼 都會被執(zhí)行一遍

實際開發(fā)場景

  • 在實際開發(fā)中,每一個模塊都是獨立開發(fā)的,大多都有專人負責
  • 開發(fā)人員通常會在模塊下方增加一些測試代碼

僅在模塊內使用,而被導入到其它文件中不需要執(zhí)行

__name__屬性

  • __name__屬性可以做到,測試模塊的代碼 只在測試情況下被運行,而在被導入時不會被執(zhí)行
  • __name__是python的一個內置屬性,記錄著一個字符串
  • 如果 是被其它文件導入的,__name__就是模塊名
  • 如果 是當前執(zhí)行的程序__name__是__main__
# 導入模塊
# 定義全局變量
# 定義類
# 定義函數(shù)
 
#在代碼的最下方
def main():
    # ...
    pass
 
# 根據(jù) __name__ 判斷是否執(zhí)行下方代碼
if __name__ == "__main__"
    main()

2.包(Package)

概念

  • 包是一個包含多個模塊的特殊目錄,目錄下有一個特殊的文件 __init__.py,包名的命名方式和變量名一致,小寫字母+_

  • __init__.py的建立方式

利用Directory建立包,需要自己新建__init__.py文件

利用Pyhon.Package建立包,會自動產生__init__.py文件

好處

  • 使用 import 包名 可以一次性導入包中所有的模塊

案例演練

  • 新建一個 hm_message 的包
  • 在目錄下,新建兩個文件 send_message和receive_message
  • 在send_message文件中定義一個send函數(shù)
  • 在receive_message文件中定義一個receive函數(shù)
  • 在外部直接導入 hm_message的包

__init__.py

要在外界使用包中的模塊,需要在__init__.py中指定對外界提供的模塊列表

# 從 當前目錄 導入 模塊列表
from  . import send_message
from  . import receive_message

3.發(fā)布模塊(了解)

如果希望自己開發(fā)的模塊,分享給其他人,可以按照以下步驟操作

3.1制作發(fā)布壓縮包步驟

創(chuàng)建setup.py的文件

from distutils.core import setup
 
setup(name="hm_message",  # 包名
      version="1.0",  # 版本
      description="itheima's 發(fā)送和接收消息模塊",  # 描述信息
      long_description="完整的發(fā)送和接收消息模塊",  # 完整描述信息
      author="itheima",  # 作者
      author_email="itheima@itheima.com", # 作者郵箱
      url="www.itheima.com", # 主頁
      py_modules=["hm_message.send_message",
                  "hm_message.receive_message"])

有關字典參數(shù)的詳細信息,可以參閱官方網(wǎng)站:

https://docs.python.org/2/distutils/apiref.html

構建模塊

$ python3 setup.py build

生成發(fā)布壓縮包

注意:要制作哪個版本的模塊,就使用哪個版本的解釋器執(zhí)行

$ python3 setup.py sdist

3.2安裝模塊

$ tar zxvf hm_message-1.0.tar.gz
$ sudo python3 setup.py install

卸載模塊

直接從安裝目錄下,把安裝模塊的目錄刪除就可以

$ cd  /root/anaconda3/lib/python3.9/site-packages/
sudo rm -rf hm_message*

3.3 pip安裝第三方模塊

  • 第三方模塊通常是指由 知名的第三方團隊開發(fā)的 并且被程序員廣泛使用的python包/模塊

  • 例如 pygame就是一套非常成熟的游戲開發(fā)模塊

  • pip是一個現(xiàn)代的、通用的python包管理工具

提供了對python包的查找、下載、安裝、卸載等功能

安裝和卸載命令如下:

sudo是指要以root的身份進行執(zhí)行

# 將模塊安裝到 python 2.x 環(huán)境
$ sudo pip install pygame
$ sudo pip uninstall pygame
 
# 將模塊安裝到 python 3.x 環(huán)境
$ sudo pip3 install pygame
$ sudo pip3 uninstall pygame

在Mac下安裝ipython

$ sudo pip install ipython

在Linux下安裝ipython

$ sudo apt install ipython
$ sudo apt install ipython3

代碼見:https://github.com/x45w/python_mokuai_bao_fabumokuai.git

內容總結于:https://space.bilibili.com/37974444

到此這篇關于Python模塊、包和發(fā)布模塊的文章就介紹到這了,更多相關Python模塊 包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 深度學習Tensorflow2.8實現(xiàn)GRU文本生成任務詳解

    深度學習Tensorflow2.8實現(xiàn)GRU文本生成任務詳解

    這篇文章主要為大家介紹了深度學習Tensorflow?2.8?實現(xiàn)?GRU?文本生成任務示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Python+OpenCV實現(xiàn)表面缺陷檢測

    Python+OpenCV實現(xiàn)表面缺陷檢測

    對于現(xiàn)在很多工業(yè)檢測,特別是對一些精密的器件進行篩選,往往都是像素級別的,十分的精確。本文將利用OpenCV+Python實現(xiàn)表面缺陷檢測,感興趣的可以了解一下
    2022-08-08
  • Pytorch關于Dataset?的數(shù)據(jù)處理

    Pytorch關于Dataset?的數(shù)據(jù)處理

    這篇文章主要介紹了Pytorch關于Dataset?的數(shù)據(jù)處理,學習如何對卷積神經網(wǎng)絡編程;首先,需要了解Pytorch對數(shù)據(jù)的使用,也是在我們模型流程中對數(shù)據(jù)的預處理部分,下面我們就一起進入文章查看具體處理過程吧
    2021-12-12
  • python神經網(wǎng)絡學習使用Keras進行回歸運算

    python神經網(wǎng)絡學習使用Keras進行回歸運算

    這篇文章主要為大家介紹了python神經網(wǎng)絡學習使用Keras進行回歸運算,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python PyQt5干貨滿滿小項目輕松實現(xiàn)高效摳圖去背景

    Python PyQt5干貨滿滿小項目輕松實現(xiàn)高效摳圖去背景

    PyQt5以一套Python模塊的形式來實現(xiàn)功能。它包含了超過620個類,600個方法和函數(shù)。本篇文章手把手帶你用PyQt5輕松實現(xiàn)圖片扣除背景,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 兩行代碼解決Jupyter Notebook中文不能顯示的問題

    兩行代碼解決Jupyter Notebook中文不能顯示的問題

    這篇文章主要介紹了兩行代碼解決Jupyter Notebook中文不能顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • pycharm安裝及如何導入numpy

    pycharm安裝及如何導入numpy

    這篇文章主要介紹了pycharm安裝及如何導入numpy,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Pygame實戰(zhàn)練習之飛機大戰(zhàn)游戲

    Pygame實戰(zhàn)練習之飛機大戰(zhàn)游戲

    飛機大戰(zhàn)想必是很多人童年時期的經典游戲,我們依舊能記得抱個老人機娛樂的場景,下面這篇文章主要給大家介紹了關于如何利用python寫一個簡單的飛機大戰(zhàn)小游戲的相關資料,需要的朋友可以參考下
    2021-09-09
  • 徹底搞懂 python 中文亂碼問題(深入分析)

    徹底搞懂 python 中文亂碼問題(深入分析)

    現(xiàn)在有的小伙伴為了躲避中文亂碼的問題甚至代碼中不使用中文,注釋和提示都用英文,我曾經也這樣干過,但這并不是解決問題,而是逃避問題,今天我們一起徹底解決 Python 中文亂碼的問題
    2020-02-02
  • 詳解python之簡單主機批量管理工具

    詳解python之簡單主機批量管理工具

    這篇文章主要介紹了詳解python之簡單主機批量管理工具,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01

最新評論

纳雍县| 虞城县| 高州市| 日照市| 平遥县| 福贡县| 瑞昌市| 韶山市| 夏邑县| 循化| 鄂尔多斯市| 沾益县| 东乡族自治县| 监利县| 新化县| 樟树市| 新龙县| 余江县| 丹寨县| 贵南县| 晋城| 灵宝市| 江津市| 安新县| 浑源县| 阜阳市| 南靖县| 石首市| 新田县| 上蔡县| 项城市| 朝阳市| 元江| 阳原县| 香港 | 康马县| 东安县| 杭州市| 杂多县| 阿尔山市| 石河子市|