亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python通過模塊化開發(fā)優(yōu)化代碼的技巧分享

 更新時間:2025年04月09日 10:02:52   作者:花小姐的春天  
模塊化開發(fā)就是把代碼拆成一個個“零件”,該封裝封裝,該拆分拆分,下面小編就來和大家簡單聊聊python如何用模塊化開發(fā)進行代碼優(yōu)化吧

寫個項目,文件夾里 .py 文件堆成山,變量名取到懷疑人生,函數到處復制粘貼,代碼改一次崩三回……每次打開項目,內心就一個感受——“這都啥玩意兒?” 

放心,咱今天就來聊聊如何用模塊化開發(fā),拯救你的代碼,讓它井井有條、優(yōu)雅可讀,從此告別“屎山”!

什么是模塊化開發(fā)

簡單來說,模塊化開發(fā)就是把代碼拆成一個個“零件”,該封裝封裝,該拆分拆分。就像搭樂高一樣,把不同的功能拆成一個個小塊,隨用隨取,既不浪費時間,也不讓代碼亂成一鍋粥。

Python 里,模塊(module) 就是一個 .py 文件,里面可以定義函數、類、變量,還可以包含可執(zhí)行代碼。多個模塊可以組成包(package),多個包再組成一個完整的項目。

比喻一下:

  • 模塊(module)= 樂高積木
  • 包(package)= 一套樂高玩具
  • 項目 = 拼好的樂高城堡 

說了這么多,咱直接上代碼,看看到底怎么玩!

如何拆分代碼

假設我們要寫一個簡單的計算器,支持加減乘除。一般人可能會直接在 calculator.py 里寫一堆函數:

# calculator.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        raise ValueError("除數不能為0!")
    return a / b

這么寫倒也行,但問題來了

  • 如果以后還要加新功能,比如平方、開根號,這個文件會越來越長。
  • 代碼全堆在一個 .py 里,復用性差,邏輯混亂。
  • 別人(包括未來的自己)接手這段代碼時,容易迷失在一堆函數里。

改進版:拆分成模塊

我們可以把不同功能拆分到不同的文件里,比如這樣:

calculator/
│── operations/
│   │── __init__.py
│   │── add.py
│   │── subtract.py
│   │── multiply.py
│   │── divide.py
│── main.py

然后,每個文件只處理自己的功能:

# operations/add.py
def add(a, b):
    return a + b
# operations/divide.py
def divide(a, b):
    if b == 0:
        raise ValueError("除數不能為0!")
    return a / b

最后,在 main.py 里這樣用:

from operations.add import add
from operations.divide import divide

print(add(10, 5))  # 15
print(divide(10, 2))  # 5.0

優(yōu)點:

? 結構清晰:每個功能各司其職,文件夾一目了然。

? 易維護:以后加新功能,直接加新模塊,互不影響。

? 可復用:不同項目里可以直接復用這些模塊。

細節(jié)提示

  • __init__.py 的作用是把 operations/ 變成一個 Python ,這樣我們才能用 from operations.add import add 這樣的方式導入。
  • 模塊的命名盡量簡潔有意義,比如 add.py 而不是 this_is_add_function.py,文件名太長會讓導入變得痛苦 

讓模塊更強大:使用 __init__.py

有時候,我們不想每次都 from operations.add import add,希望直接 from operations import add,那就要利用 __init__.py

# operations/__init__.py
from .add import add
from .subtract import subtract
from .multiply import multiply
from .divide import divide

這樣,我們就可以一次性導入所有操作:

from operations import add, divide

print(add(10, 5))  # 15
print(divide(10, 2))  # 5.0

很多 Python 開發(fā)者容易忽視的一點

如果 __init__.py不寫任何內容,那 from operations import add 是會報錯的,因為 Python 不知道 operations 這個包里有哪些東西能被導入。

你一定會遇到的問題

模塊導入失???ModuleNotFoundError

ModuleNotFoundError: No module named 'operations'

解決方案

確保你在正確的目錄下運行 main.py,不能在 operations/ 里運行。

main.py 開頭加上:

import sys
sys.path.append(".")  # 確保 Python 知道當前目錄

import * 為什么不推薦

有人喜歡這樣寫:

from operations import *

看似很方便,但這其實是個坑,因為:

  • 你不知道具體導入了哪些東西,可能會覆蓋已有的變量。
  • 代碼可讀性變差,別人(包括未來的你)會一臉懵逼。
  • __init__.py 里沒 __all__ 的話,這種方式甚至會報錯。

所以,建議明確導入所需模塊,比如:

from operations import add, divide  # 一目了然

總結

  • 模塊化開發(fā)能讓代碼更清晰、可復用、易維護,是寫好 Python 代碼的必備技能!
  • 一個 .py 文件就是一個模塊,多個模塊組成包(package)。
  • __init__.py 可以幫助管理包的導入,但用法要注意。
  • 避免 import *,盡量使用顯式導入,代碼更可讀。

到此這篇關于Python通過模塊化開發(fā)優(yōu)化代碼的技巧分享的文章就介紹到這了,更多相關Python模塊化開發(fā)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Django實現WebSocket在線聊天室功能(channels庫)

    Django實現WebSocket在線聊天室功能(channels庫)

    本文基于channels庫Django實現WebSocket在線聊天室功能,包括安裝及創(chuàng)建django項目的全過程,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python如何獲取多線程返回結果

    Python如何獲取多線程返回結果

    這篇文章主要介紹了Python如何獲取多線程返回結果,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python matplotlib庫繪制條形圖練習題

    python matplotlib庫繪制條形圖練習題

    這篇文章主要介紹了python matplotlib庫繪制條形圖練習題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 導致python中import錯誤的原因是什么

    導致python中import錯誤的原因是什么

    在本篇文章里小編給大家整理了關于python的import錯誤原因以及相關內容,需要的朋友們可以學習下。
    2020-07-07
  • 淺談pandas用groupby后對層級索引levels的處理方法

    淺談pandas用groupby后對層級索引levels的處理方法

    今天小編就為大家分享一篇淺談pandas用groupby后對層級索引levels的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python列表切片常用操作實例解析

    Python列表切片常用操作實例解析

    這篇文章主要介紹了Python列表切片常用操作實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Python標準庫學習之psutil內存詳解

    Python標準庫學習之psutil內存詳解

    本篇文章給大家介紹一個Python標準庫中的psutil模塊,它是一個跨平臺庫,下面來學習一下器常用的功能及使用方法吧,有需要的同學可以借鑒參考下
    2021-09-09
  • Python使用騰訊云API實現短信驗證碼功能

    Python使用騰訊云API實現短信驗證碼功能

    使用Python與騰訊云接口對接,實現短信驗證碼功能變得非常簡單,只需要幾行代碼就能夠輕松實現短信的發(fā)送,無須關心復雜的短信協(xié)議和底層實現,讀者可以根據自己的實際需求,靈活使用騰訊云短信SDK提供的API來實現更豐富的短信功能
    2024-01-01
  • python讀取dicom圖像示例(SimpleITK和dicom包實現)

    python讀取dicom圖像示例(SimpleITK和dicom包實現)

    今天小編就為大家分享一篇python讀取dicom圖像示例(SimpleITK和dicom包實現),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python Unittest ddt數據驅動的實現

    Python Unittest ddt數據驅動的實現

    本文主要介紹了Python Unittest ddt數據驅動的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論