一、什麼是模塊(Module)?

在 Python 中,一個 .py 文件就是一個模塊。比如你創建了一個 math_utils.py 文件,它就是一個名為 math_utils 的模塊。

示例:創建自己的模塊

新建文件 greet.py

# greet.py
def say_hello(name):
    return f"你好,{name}!"

def say_goodbye(name):
    return f"再見,{name}!"

然後在另一個文件(如 main.py)中導入並使用:

# main.py
import greet

print(greet.say_hello("小明"))   # 輸出:你好,小明!

二、導入模塊的幾種方式

1. import 模塊名

import greet
greet.say_hello("李華")

2. from 模塊名 import 函數名

from greet import say_hello
print(say_hello("王芳"))  # 直接調用,無需前綴

3. from 模塊名 import *(不推薦)

會導入模塊中所有公開內容,容易造成命名衝突。

4. 給模塊起別名(常用)

import greet as g
print(g.say_goodbye("張偉"))

💡 提示:標準庫如 ossysjson 都是模塊,使用方式完全相同。


三、__name__ == '__main__' 的作用

你可能在別人代碼中見過這行:

if __name__ == '__main__':
    # 測試代碼
    print(say_hello("測試用户"))

它的意思是:只有當該文件被直接運行時,才執行下面的代碼;如果被導入,則跳過。

這樣可以讓模塊既可作為庫被導入,又可獨立運行進行測試。


四、什麼是包(Package)?

當項目變大,僅靠模塊不夠用了,就需要——包含多個模塊的文件夾

創建一個包

  1. 新建文件夾 mytools
  2. 在其中創建 __init__.py(可以為空,但必須存在,表示這是一個包)
  3. 添加模塊文件,如 string_utils.pynumber_utils.py

目錄結構如下:

mytools/
├── __init__.py
├── string_utils.py
└── number_utils.py

使用包中的模塊

from mytools.string_utils import reverse_string
from mytools import number_utils

print(reverse_string("hello"))          # 輸出:olleh
print(number_utils.is_even(10))         # 假設 is_even 是 number_utils 中的函數

__init__.py 的作用:

  • 標識該目錄為 Python 包
  • 可以控制 from mytools import * 時導入哪些內容(通過 __all__ 列表)

五、常用標準庫模塊推薦

Python 自帶大量實用模塊,無需安裝即可使用:

模塊

用途

os

操作系統接口(如讀取環境變量、路徑處理)

sys

系統相關參數(如命令行參數)

math

數學運算(如 sqrtsin

random

生成隨機數

datetime

處理日期和時間

json

解析和生成 JSON 數據

示例:

import random
print(random.randint(1, 100))  # 輸出 1~100 的隨機整數