Python语言模块、包解析-10天学会Python

liftword3个月前 (04-01)技术文章29

什么是模块?

模块是一个包含Python定义和语句的文件。模块用于将代码组织成更小的、更易管理的部分,便于重用和共享。

创建模块

创建一个Python文件(例如mymodule.py),在其中定义函数、类和变量。

示例:mymodule.py

# mymodule.py

def greet(name):
    return f"Hello, {name}!"

PI = 3.14159

导入模块

使用import语句导入整个模块,或使用from ... import ...导入模块中的特定部分。

import 模块名
from 模块名 import 函数/类/变量
# 导入整个模块
import mymodule

print(mymodule.greet("Alice"))  # 输出: Hello, Alice!
print(mymodule.PI)              # 输出: 3.14159

# 导入模块中的特定函数
from mymodule import greet

print(greet("Bob"))  # 输出: Hello, Bob!

# 导入模块中的所有内容
from mymodule import *

print(greet("Charlie"))  # 输出: Hello, Charlie!
print(PI)                 # 输出: 3.14159

模块搜索路径

Python在导入模块时,会按照以下顺序搜索模块:

  • 当前目录。
  • PYTHONPATH环境变量中指定的目录。
  • 标准库目录。
  • 任何.pth文件指定的目录。

常用标准库模块

  • sys:提供对解释器使用或维护的一些变量的访问。
  • os:提供与操作系统交互的功能。
  • math:提供数学函数。
  • datetime:处理日期和时间。
  • json:处理JSON数据。
import math
print(math.sqrt(16))  # 输出: 4.0

import datetime
now = datetime.datetime.now()
print(now)  # 输出当前日期和时间

命名空间和作用域

每个模块都有自己的命名空间。导入模块后,可以通过模块名访问其内容,避免命名冲突。

# module1.py
def func():
    print("Module1 func")

# module2.py
def func():
    print("Module2 func")

# main.py
import module1
import module2

module1.func()  # 输出: Module1 func
module2.func()  # 输出: Module2 func

重新加载模块

如果模块已经加载,可以使用importlib模块的reload函数重新加载模块。

import importlib
import mymodule

importlib.reload(mymodule)

包的创建与管理

什么是包?

包是包含多个模块的目录。包中必须包含一个__init__.py文件(可以是空的),用于标识该目录为一个包。

创建包

  • 创建一个目录(如mypackage)。
  • 在目录中创建__init__.py文件(可以是空文件)。
  • 在目录中添加模块文件(如module1.py、module2.py)。
mypackage/
    __init__.py
    module1.py
    module2.py

module1.py

def func1():
    print("Module1 func1")

module2.py

def func2():
    print("Module2 func2")

导入包中的模块

from mypackage import module1, module2

module1.func1()  # 输出: Module1 func1
module2.func2()  # 输出: Module2 func2

相关文章

从全流程的角度来了解python包的使用,你也许会有不一样的认识

在python中,只要我们一谈到包或模块,基本默认说的就是包的导入和使用。也就是说只要我们知道包的名字,导入后知道怎么使用基本就可以了,但本人认为,我们仅仅了解的是包的一部分,若想对包有个整体的认识,...

Python 模块导入(import)实战指南

在 Python 中,导入(import)是代码复用的关键。通过正确的导入方式,代码更清晰、模块化,避免命名冲突。使用 import X 导入整个模块,或 from X import Y 导入特定内容...

python中的模块、库、包有什么区别?

一文带你分清Python模块、包和库。一、模块Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变...

Python包中__init__.py文件的作用和用法

在Python工程中,我们经常可以看到带有“__init__.py”文件的目录,在PyCharm中,带有这个文件的目录被认为是Python的包目录,与目录的图标有不一样的显示。如下图所示,「链接」di...

Python 模块、库、包和框架的区别

在Python中,模块、库、包和框架是软件开发中常见的概念,它们的定义和用途如下:1. 模块(Module)定义一个.py文件即为一个模块,包含函数、类、变量或可执行代码。例如:math.py、dat...