搜尋
首頁後端開發Python教學什麼是模組? Python模組中模組module的介紹

這篇文章帶給大家的內容是關於什麼是模組? Python中模組module的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一、什麼是模組

Python中,一個.py檔就稱之為一個模組。
那麼使用模組有什麼好處呢?

(1)提高了程式碼的可維護性。

(2)程式碼不必從零開始,當一個模組寫完畢後,就可以被其他地方應用。

(3)可以避免函數名稱和變數名稱衝突,相同的函數名稱和變數可以存放在不同的模組中,但是要注意盡量不要與內建函數名字衝突。
  Python所有的內建函數:https://docs.python.org/3/lib...

為避免模組名衝突,python又引入了按目錄來阻止模組衝突的方法,稱為包(python package)。
一個abc.py的檔案就是一個名字為abc的模組,一個xyz.py的檔案就是一個名字為xyz的模組。假如abc和xyz這兩個模組名字與其他模組衝突了,於是我們可以透過不同的套件來組織模組,避免模組衝突。
則可為:

↓ mycompany      # 按目录存放
     _init_.py   # 模块名:mycompany
     abc.py      # 模块名:mycompany.abc
     xyz.py      # 模块名:mycompany.xyz

引入了套件以後,只要頂層的套件名稱不與別人衝突,那麼所有模組都不會與別人衝突。
每一個套件目錄下都會有一個_init_.py的文件,這個文件是必須存在的,否則python就把這個目錄當成普通目錄,而不是一個包。
_init_.py可以是空文件,也可以有python程式碼,因為_init_.py本身就是一個模組。

二、使用Python自帶模組

Python內建了許多非常有用的模組,只要安裝完畢,這些模組就可以透過import立刻導入使用。
例如下列小程式:以自建的sys模組,寫一個hello的模組hello.py 。

# !/usr/bin/env python    # -1-
# -*-coding:utf-8 -*-     # -2- 
_author_ = 'xionglp'      # 使用_author_变量把作者写进去

import sys   

def test(): 
    args = sys.argv  
    if len(args) == 1: 
        print ('hello,world!') 
    elif len(args) ==2: 
        print('hello,%s !'% args[1]) 
    else: 
        print('too many arguments!') 
if __name__ == '__main__':
    test()

說明:

註解# -1- :讓該.py檔案直接在unix/linux/mac上執行

註解# -2- :.py文件使用標準UTF-8 編碼

import sys:導入sys模組。之後便可以利用sys這個變量,存取sys模組的所有功能。
sys模組有一個argv變量,用list儲存了命令列的所有參數。 argv至少有一個元素,因為第一個參數永遠是該.py檔的名稱。

當在命令列執行hello.py檔時,python解釋器就把一個特殊變數__name__置為__main__。如果在其他地方匯入模組時,if判斷將會失敗,即if僅在此模組單獨執行時生效。因此這種if測試可以讓一個模組透過命令列運行時執行一些額外的程式碼,最常見的就是執行測試。

在互動式環境(cmd)中導入該模組:

>>> import hello                         
>>> hello.test()                   
hello, world!

三、安裝使用第三方模組

除了Python自己的套件,也可以安裝安裝第三方模組。第三方包安裝是透過套件管理工具pip完成的。
一般來說,第三方函式庫都會在Python官方的pypi.python.org網站註冊。所以要安裝第三方函式庫,必須先知道該函式庫的名稱,可以在官網或pypi上搜尋。例如Pillow的名稱叫做Pillow,因此,安裝Pillow的指令就是:pip install Pillow

步驟1:找到安裝Python路徑中的easy_install.exe,例如:D:PythonScripts

#步驟2 :開啟cmd,輸入安裝指令:easy_install.exe pip (pip安裝成功)

#步驟3:在cmd下執行pip,輸入指令:pip install pillow

#如下:

什麼是模組? Python模組中模組module的介紹

安裝成功後便可以使用Pillow了。其他常用的第三方函式庫還有:MySQL的驅動程式、用於科學計算的NumPy函式庫等等。

pip升級:

在使用pip進行安裝時,有時候會提示pip的版本太低,需要upgrade。提示會給予要執行的語句,依照提示執行就行。
執行指令:python –m pip install –upgrade pip

四、模組搜尋路徑

我們也可以匯入自己寫入的模組。當我們試圖載入一個模組時,Python會在指定的路徑下搜尋對應的.py文件,如果找不到,就會報錯,例如:

什麼是模組? Python模組中模組module的介紹

預設情況下,Python解釋器會搜尋目前目錄、所有已安裝的內建模組和第三方模組,搜尋路徑存放在sys模組的path變數中:

>>>import sys
>>>sys.path

如果我們要新增自己的搜尋目錄,有兩種方法:

法一:直接修改sys.path,加入要搜尋的目錄,這個方法是在執行時修改,執行結束後失效。

>>> import sys
>>> sys.path.append('/Users/xionglp/my_py_scripts')

法二:设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。

【补充点能量】if __name__ =="__main__":

__name__:为系统变量,有两个取值。当模块是被调用执行时,取值为模块的名字;当模块是直接执行时,则该变量取值为__name__。

if __name__ == "__main__"实现的功能:可以让模块既可以导入到别的模块中用,也可以自己执行。

英文解释说:make a script both importable and executeable

例如:新建模块atest.py

# !/usr/bin/env python3
# -*- coding:utf-8 -*-
'a test module'
def addFunc(a, b):
    return a + b
print('a_test_module\'s result is ', addFunc(1, 1))

新建模块anothertest.py

# !/usr/bin/env python3
# -*- coding :utf-8 -*-
'another test module'
import  atest
print('调用another test module模块执行的结果时:',atest.addFunc(12,23))

运行:

D:\Python_project>python atest.py
a_test_module's result is  2
D:\Python_project>python anothertest.py
a_test_module's result is  2
调用another test module模块执行的结果时: 35

说明:当运行anothertest.py的时候,先运行了atest.py,再运行anothertest.py。
若不希望出现atest的内容,python提供了一个系统变量:__name__。可以把被调用的测试代码写在if语句里,当调用该module时,此时的__name__取值为该模块的名字,所以if判断为假,不执行后续代码如下:

if __name__ == '__main__':`
       print ('atest的计算结果:',addFunc(1,1))

则运行结果为:

D:\Python_project>python anothertest.py
调用another test module模块执行的结果时: 35

此时我们就得到了预期结果,不输出多余的结果。

以上是什麼是模組? Python模組中模組module的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境