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

喜欢花科技君 2025-03-07 02:53:31
什么是模块?

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

创建模块

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

示例:mymodule.py

# mymodule.pydef greet(name): return f"Hello, {name}!"PI = 3.14159导入模块

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

import 模块名from 模块名 import 函数/类/变量# 导入整个模块import mymoduleprint(mymodule.greet("Alice")) # 输出: Hello, Alice!print(mymodule.PI) # 输出: 3.14159# 导入模块中的特定函数from mymodule import greetprint(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 mathprint(math.sqrt(16)) # 输出: 4.0import datetimenow = datetime.datetime.now()print(now) # 输出当前日期和时间命名空间和作用域

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

# module1.pydef func(): print("Module1 func")# module2.pydef func(): print("Module2 func")# main.pyimport module1import module2module1.func() # 输出: Module1 funcmodule2.func() # 输出: Module2 func重新加载模块

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

import importlibimport mymoduleimportlib.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, module2module1.func1() # 输出: Module1 func1module2.func2() # 输出: Module2 func2

Python语言模块、包解析

0 阅读:16

喜欢花科技君

简介:感谢大家的关注