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

liftword2个月前 (04-01)技术文章11

什么是模块?

模块是一个包含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 包导入机制详解#### 1. 包的定义在 Python 中,包是一个包含多个模块的文件夹。要定义一个包,您需要:- 创建一个文件夹,并在该文件夹内放置 Python 文件(模块)...

Python 幕后:Python导入import的工作原理

更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)Python 最容易被误解的方面其中之一是import。Python 导入系统不仅看起来很复杂。因此,即使文档非常好,它也不能让您全面了解正...

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

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

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

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

python数据缓存怎么搞 ?推荐一个三方包供你参考,非常简单好用。

1.数据缓存说明数据缓存可以说也是项目开发中比不可少的一个工具 ,像我们测试的系统中 ,你都会见到像Redis一样的数据缓存库 。使用缓存数据库的好处不言而喻,那就是效率高 ,简单数据直接放在缓存中...