三分鐘從入門到精通——Python模塊

2021-01-12 程序媛柚柚

#Python入門教程#

什麼是python中的模塊:

假設您正在使用python解釋器。您花了30分鐘來定義一個函數,然後使用它並退出解釋器。但是突然間,您記住仍然需要再次使用該功能。您再次輸入它,但該功能的定義已消失。哎呀,好痛。

現在,您再次需要花費30分鐘來鍵入相同的功能。因此,python有一種方法可以將該函數定義放入文件中並隨時使用。

模塊是ModuleType類型的對象。該模塊基本上是一個python文件(擴展名為的文件.py),其中包含定義和語句(例如:類,函數,變量等)。Python中的模塊為我們提供了邏輯上組織代碼的靈活性。我們使用模塊將大型程序分解為小的可管理文件。我們可以在模塊中定義函數或類,然後使用來在其他模塊中重用它們

import。Python本身帶有很多模塊,例如數學,迭代工具,集合等。

示例:讓我們創建一個模塊。在文件中鍵入以下函數,並將其另存為utils.py。

### utils.py def multiplication(a: int, b: int)-> int:"""This function will return the multiplication of two integers""" return a * b

因此,我們在名為utils的模塊中定義了一個名為乘法的函數。

如何導入模塊:

我們可以使用關鍵字將模塊內的定義導入另一個模塊import。

Python提供了兩種導入模塊的方法,如下所示:

import module_namefrom module_name import name1, name2...示例:讓我們將utils模塊導入另一個名為 operations.py

### operations.pyimport utilsresult = utils.multiplication(2, 4)print(result)>>> 8

當我們在操作模塊中導入utils時,它不會直接將utils模塊內部定義的對象加載到Operations模塊中。相反,它將僅在當前模塊名稱空間中加載模塊名稱(utils)。要使用utils定義的函數或類,我們必須使用上面示例()中所示的表示法。如果您嘗試直接使用乘法,則python會拋出如下所示的異常:

dot (.)

utils.multiplication(2, 4)

>>> import utils>>> multiplication(2,3)Traceback (most recent call last):File "<stdin>", line 1, in <module>NameError: name 'multiplication' is not defined

如果要將特定功能或定義從模塊導入其他模塊,則必須使用

from module_name import name。

### operations.pyfrom utils import multiplicationresult = multiplication(2, 4)print(result)>>>8

如果大家在學習中遇到困難,想找一個python學習交流環境,可以加入我們的python裙,關注小編,並私信「01」即可進裙,領取python學習資料,會節約很多時間,減少很多遇到的難題。

注意:Python還允許我們使用as關鍵字為導入別名,如下所示:

import modulename as somenamefrom modulename import name as somename例:

### operations.py# import utils as ufrom utils import multiplication as mul# result = u.multiplication (2,4)result = mul(2, 4)print(result)>>>8

注意:我們可以使用import *或from .. import *導入特定模塊中的所有對象。

例:

### operations.pyfrom utils import *result = multiplication(2, 4)print(result)>>>8

注意:我們可以使用該dir()函數找出模塊內定義的對象。

>>> import utils>>>dir(utils)['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'multiplication']

在這裡,我們可以看到名稱列表(以及乘法)。所有以下劃線開頭的名稱都是與模塊關聯的默認Python屬性。例如,

__name__存儲模塊的名稱並__file__存儲其所在模塊的路徑。

>>>import utils>>>utils.__name__ # name of the module'utils'>>>utils.__file__ # module path'C:\\Users\\user\\Desktop\\python_practice\\utils.py'

python如何導入模塊:

Python使用了一個相對複雜的系統來查找和加載模塊。該

sys

模塊具有一些屬性,這些屬性定義Python將在哪裡尋找模塊。

Python在哪裡尋找進口?

>>> import sys>>> sys.path['', 'C:\\Users\\user\\Anaconda3\\python37.zip', 'C:\\Users\\user\\Anaconda3\\DLLs', 'C:\\Users\\user\\Anaconda3\\lib', 'C:\\Users\\user\\Anaconda3', 'C:\\Users\\user\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\user\\Anaconda3\\lib\\site-packages', 'C:\\Users\\user\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\user\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\user\\Anaconda3\\lib\\site-packages\\Pythonwin']

因此,當我們導入模塊時,python會查看

sys.path

列表。如果在這些路徑之一中未找到該模塊,則它將引發一個

ModuleNotFoundError

有多種方法可以確保在運行Python時目錄始終位於Python sys.path列表中,包括:

sys.path.append('module/package directory')導入前使用。將目錄放入PYTHONPATH環境變量的內容中。使模塊可安裝並安裝。概括地說,這就是Python導入模塊的方式:

導入搜索期間檢查的第一個地方是sys.modules。它檢查sys.modules緩存以查看模塊是否已經導入-如果是,則僅在其中使用引用,否則:它創建一個新的模塊對象(types.ModuleType)它從文件加載原始碼它將添加一個條目sys.modules,名稱為鍵,新創建的對象引用為值。它編譯並執行原始碼。注意:導入模塊時,將執行模塊代碼。

導入模塊時會發生什麼

導入模塊名如果整個模塊(模塊名)尚不存在,則將其加載到內存中sys.modules使用module_name的鍵添加對它的引用在我們當前的名稱空間中添加一個引用了module_name對象的相同名稱的符號從module_name導入somename如果整個模塊(module_name)還不存在,則將其加載到內存中sys.modules使用module_name的鍵添加對它的引用將符號somename添加到引用module_name.somename函數的當前名稱空間中它不會將符號module_name添加到我們當前的名稱空間中導入module_name作為randomename如果整個模塊(module_name)還不存在,則將其加載到內存中sys.modules使用module_name的鍵添加對它的引用將符號randomename添加到引用module_name對象的當前名稱空間中從module_name導入somename作為randomname如果整個模塊(module_name)尚不存在,則將其加載到內存中sys.modules使用module_name的鍵添加對它的引用將符號randomname添加到引用module_name.somename函數的當前名稱空間中它不會將符號module_name添加到我們當前的名稱空間中從module_name導入*如果整個模塊(module_name)尚不存在,則將其加載到內存中sys.modules使用module_name的鍵添加對它的引用將module_name模塊中所有導出符號的符號直接添加到我們的名稱空間(我們可以使用來控制導入的內容__all__)它不會將符號module_name添加到我們當前的名稱空間中最後多說一句,小編是一名python開發工程師,這裡有我自己整理的整套python學習資料和路線,想要這些資料的都可以關注小編,並私信「01」領取。

相關焦點

  • Python從入門到精通要掌握哪些基礎知識?
    Python從入門到精通要掌握哪些Python基礎知識?Python作為一門程式語言,已經發展了近三十年,近幾年,隨著人工智慧時代的來臨分不開,python人才已經成為一線網際網路企業的青睞的對象,Python爬蟲也由此成為程式語言中的「網紅」。
  • Python 從入門到精通:一個月就夠了!
    其實,只要掌握了科學的學習方法並制定了合理的學習計劃,Python 從 入門到精通只需要一個月就夠了!要知道,一個月是一段很長的時間。如果每天堅持用 6-7 小時來做一件事,你會有意想不到的收穫。第一周:熟悉 Python要積極探索 Python 的使用方法,儘可能多的完成下面這些任務:第一天:基本概念(4 小時):print,變量,輸入,條件語句第二天:基本概念(5 小時):列表,for 循環,while 循環,函數,導入模塊第三天:簡單編程問題(5 小時):交換兩個變量值
  • 【Python環境】python的nltk中文使用和學習資料匯總幫你入門提高
    1. nltk的安裝資料1.1: 黃聰:Python+NLTK自然語言處理學習(一):環境搭建 http://www.cnblogs.com/huangcong/archive/2011/08/29/2157437.html 這個圖文並茂, 步驟清晰, 值得一看. 我想我沒必要再重新寫一遍了, 因為我當時也是按照他這樣做的.
  • 學習python必備暢銷書排行榜top5書單
    本文將從零基礎到高級精通,說說學習python必備的暢銷書,top1:《python編程從入門到實踐》,對於初學者來說,每次都是從入門到放棄,那是因為有些書編寫的學習方法路線不合理,或者實戰案例太少,也容易讓人不知所用。
  • Python快速入門的方法
    那麼,作為一個新手,如何才能快速並有效的入門呢?0.快速入門《和孩子一起學編程》這本書說是給兒童設計的,所以內容比較生動。非常非常非常簡單易懂 不用花太長時間就能看下來一遍。import一個easygui,初學者分分鐘做個圖形界面出來,對於初學python,成就感!!
  • Python:從入門到精通 完整版PDF[7MB]
    Python可以用於很多的領域,從科學計算到遊戲開發。本書提出了以理解和運用計算生態為目標的Python語言教學思想,不僅系統講解了Python語言語法,同時介紹了從數據理解到圖像處理的14個Python函數庫,向初學Python語言的讀者展示了全新的程式語言學習路徑。
  • Python入門教程 | 第 5 章 模塊
    你可能注意到了,使用sys模塊的第一步,就是導入該模塊:import sys導入sys模塊後,我們就有了變量sys指向該模塊,利用sys這個變量,就可以訪問sys模塊的所有功能。最後,注意到這兩行代碼:if __name__=='__main__':    test()當我們在命令行運行hello模塊文件時,Python 解釋器把一個特殊變量__name__置為__main__,
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python
  • 【python】os 模塊使用筆記
    閱讀大概需要2分鐘跟隨小博主,每天進步一丟丟
  • 程序媛筆記分享——python模塊之subprocess模塊
    subprocess模塊:專門用於py執行系統命令1. 簡單命令的執行# !usr/bin/env python# -*- coding:utf-8 -*-import subprocess# subprocess模塊中,多個指令的輸入,由參數shell決定輸入形式是字符串還是序列,如下:# ret = subprocess.call(["ls", "-l"], shell=False)# ret = subprocess.call
  • 11周精通python計劃(完結)-網易雲課堂|百度網盤資源分享
    11周精通python計劃(完結)-網易雲課堂百度網盤無套路免費分享獲取課程方式:掃描微專業 11周精通python計劃(完結)課程概況Python 語言是計算機工程、大數據及人工智慧等領域的基礎性語言,廣泛且深刻地影響著信息技術各領域的發展方式及速度,從軟體開發到硬體開發、從數據科學到智能技術、從應用實踐到科技創新,它無處不在!
  • python教程
    python視頻教程     文章底部留言 序號 給您發送視頻教程連結或者加微信 bigzql 索要Python
  • 用Pygame和Python做遊戲-從入門到精通(1)
    看 這個系列需要有Python的基礎知識,雖然一開始想寫一篇Python概要的,有Python入門,實在是很龐雜,而且有那麼多好的Python基礎教 程,自己就不多插一腳了吧。入門的話,詳盡的話,可以看看Python核心編程或者Python編程金典,然後IBM上的「可愛的Python」系列也很 不錯,可以擴展一下思維。
  • 2020年最新Python視頻教程免費下載,優質的Python全系列視頻教程推薦,百度雲資源python視頻教程
    對於小白來說,英文又不是很好,又不是理工男理工女,又想自學,那麼學習python有什麼好的視頻教程嗎?有哪些優質的Python全系列視頻教程推薦呢?派森君為你分享2020年最新python視頻百度雲資源教程,趕緊下載學習。關於python,看過所謂的很多python入門教程書籍,比如《python編程從入門到實踐》、《笨辦法學python》、《python學習手冊》。
  • python深度學習---帶你從入門到精通
    為輔助提高廣大科研工作者的使用python深度學習技術,我們舉辦了本次《python深度學習實踐技術及應用線上培訓》,利用大量的案例講解與實操練習讓大家更深入便捷的運用到工作學習中,也方便各個領域可以更好地交叉融合、擴展應用。
  • 【Python入門只需20分鐘】從安裝到數據抓取、存儲原來這麼簡單
    僅僅看了書前面一小部分的我.決定做一名python的腦殘粉。      作為一名合格的腦殘粉(標題黨  (ノ◕ω◕)ノ),為了發展我的下線,接下來我會詳細的介紹 Python 的安裝 到開發工具的簡單介紹,並編寫一個抓取天氣信息數據並存儲到資料庫的例子。
  • python String模塊在實際應用的代碼介紹
    python String模塊在實際應用的代碼介紹 本文以python String模塊的相關代碼的方式來介紹python String模塊的具體應用方法的介紹,那麼下面的文章就讓我們一起分享吧!
  • C 語言C++ 教程視頻編程入門到精通視頻課程
    化妝教程零基礎步驟課程學彩妝自學護膚職場美妝技巧培訓畫眉視頻uni-app開發教程項目實戰小程序基礎入門商業項目uniapp視頻教程零基礎自學Ai服裝設計視頻教程電腦軟體款式圖網絡課程圖案設計3DMAX建築表現高端室外效果圖視頻教程第二期渲染後期課程2019刮痧系統學習視頻穴位手法中醫經絡推拿按摩自學入門進階教程90天產品經理實戰班視頻教程網課入門到精通簡歷優化在線課程培訓
  • python的模塊和序列
    通常import加載的模塊分為四個通用類別:使用python語言編寫的代碼(後綴名為py的文件)已被編譯為共享庫或DLL的C或C++的擴展使用C編寫並連接到python解釋器的內置模塊假設我們推出python解釋器再重新進入,那麼我們之前定義的函數或變量都將丟失,因此我們通常將程序寫入到文件中永久保存,如果需要運行,在以python xxx.py的方式去執行,此時xxx.py被稱為腳本script。
  • 視頻教程:Java從入門到精通
    正在閱讀:視頻教程:Java從入門到精通視頻教程:Java從入門到精通2006-06-28 15:42出處:作者:孫鑫>   《Java從入門到精通》視頻教程由孫鑫老師錄製(作者網站:http://www.sunxin.org),教程通俗易懂,內容全面,帶領Java初學者從入門到精通,快速掌握 Java 程式語言。