python笔记11

1、模块简介

在Python中,模块是一种组织代码的方式,允许你将相关的代码放在一个文件中,以便更好地组织和重用。模块可以包含变量、函数和类等。下面是关于Python模块的一些基本概念:

1. 创建模块

要创建一个模块,只需创建一个包含Python代码的文件,文件的扩展名通常是.py。例如,如果你有一个名为的文件mymodule.py,它可以被视为一个模块。

python 复制代码
# mymodule.py
def say_hello():
    print("Hello from mymodule!")

my_variable = 42

2.导入模块

你可以使用关键字导入模块import,并使用模块中定义的变量、函数或类。

python 复制代码
import mymodule

mymodule.say_hello()  # 调用模块中的函数
print(mymodule.my_variable)  # 访问模块中的变量

还可以使用语法导入模块的特定成员:from ... import ...

python 复制代码
from mymodule import say_hello

say_hello()  # 可以直接使用函数,而不需要使用模块名前缀

3.模块的命名空间

模块有一个自己的命名空间,可以防止命名冲突。在上面的例子中,mymodule是模块的命名空间。

4.使用别名

可以使用关键字as为导入的模块或模块成员设置别名,以便更方便地使用。

python 复制代码
import mymodule as mm

mm.say_hello()

5.属性__name__

  1. 当一个模块被直接执行时,__name__ 的值为"__main__" 。这表示这个脚本是主程序,而不是被导入到其他模块中的一部分。

    python 复制代码
    # example.py
    def main():
        print("This is the main function.")
    
    if __name__ == "__main__":
        main()

    如果你运行这个脚本, __name__的值将是"main" ,并且main() 函数将被执行。

  2. 当一个模块被导入到其他模块中时, __name__的值是模块的名称。

    python 复制代码
    # another_module.py
    import example
    
    example.main()  # 在这里,example 模块的 __name__ 值将是 "example"

    这种用法允许在模块中编写一些测试代码,但只有在模块被直接执行时才会运行这些代码。这种机制对于模块的测试和重用是非常有用的。

2、模块的导入

在Python中,你可以使用 import语句导入其他模块,以便在当前模块中使用其定义的变量、函数、类等。以下是关于模块导入的一些基本用法:

1. 简单导入

最基本的导入形式是使用 import关键字,后跟模块的名称:

python 复制代码
# 导入整个模块
import module_name

# 使用模块中的变量、函数、类等
module_name.some_function()

2. 别名导入

可以使用 as关键字为导入的模块或模块成员设置别名:

python 复制代码
# 导入整个模块,并设置别名
import module_name as alias_name

# 使用别名调用模块中的内容
alias_name.some_function()

3. 导入特定成员

如果只需要模块中的特定函数、变量或类,可以使用 语法:from ... import ...

python 复制代码
# 导入模块中的特定成员
from module_name import some_function, some_variable

# 可以直接使用导入的成员,而不需要使用模块名前缀
some_function()
print(some_variable)

4. 导入所有成员

你还可以使用 from ... import *导入模块中的所有成员。尽管这种做法在简化代码时可能会方便,但通常不推荐,因为它可能导致命名冲突和代码不易读。

python 复制代码
# 导入模块中的所有成员(不推荐)
from module_name import *

5. 条件导入

有时你可能希望根据条件导入不同的模块。可以使用 import ... as ...的结构,并在运行时根据条件决定导入哪个模块:

python 复制代码
if some_condition:
    import module1 as my_module
else:
    import module2 as my_module

my_module.some_function()

以上是一些基本的模块导入用法。模块的导入使得代码可以被模块化,重用性增强,并使得代码更易于维护。

3、pythonz中的包

在Python中,包(Package)是一种用于组织模块的层次结构。它是一个包含特殊文件__init__.py 的目录,该文件可以为空,也可以包含Python代码。这个目录中的模块可以通过点记法(dot notation)来访问。

以下是关于Python包的一些基本概念和用法:

1. 包的结构

一个典型的包结构如下:

python 复制代码
my_package/
|-- __init__.py
|-- module1.py
|-- module2.py
|-- subpackage/
    |-- __init__.py
    |-- module3.py
  • __init__.py: 是一个包含初始化代码的文件,它可以为空。当Python解释器发现一个目录中包含这个文件时,它会将这个目录视为一个包。

  • module1.py, module2.py, module3.py: 是包中的模块,包含了相关的函数、变量或类。

  • subpackage/: 是一个子包,也是一个包含 __init__.py的目录。

2. 导入包和模块

你可以使用 import语句导入包和模块。例如:

python 复制代码
# 导入包中的模块
import my_package.module1
my_package.module1.some_function()

# 导入包中的模块并设置别名
import my_package.module2 as m2
m2.some_function()

# 导入子包中的模块
import my_package.subpackage.module3
my_package.subpackage.module3.some_function()

3. 使用 __init__.py

__init__.py 文件可以包含包级别的初始化代码,也可以用于导出包中的内容。例如,如果__init__.py 包含如下代码:

python 复制代码
# my_package/__init__.py

from .module1 import some_function
from .module2 import another_function

那么可以在其他地方直接导入 ,然后使用其中的函数my_package

python 复制代码
# 使用 __init__.py 导出的函数
import my_package

my_package.some_function()
my_package.another_function()

4. 变量__all__

__init__.py中,你还可以定义__all__ 变量,用于指定哪些模块或变量应该被导出。例如:

python 复制代码
# my_package/__init__.py

__all__ = ['module1', 'module2']

这样,当使用 from my_package import *``__all__时,只会导入 中指定的模块或变量。

总体而言,包是一种组织代码的有效方式,可以将相关的模块组织在一起,提高代码的可读性和可维护性。

相关推荐
龙湾开发1 小时前
轻量级高性能推理引擎MNN 学习笔记 02.MNN主要API
人工智能·笔记·学习·机器学习·mnn
HappyAcmen2 小时前
线代第二章矩阵第八节逆矩阵、解矩阵方程
笔记·学习·线性代数·矩阵
愚润求学4 小时前
【递归、搜索与回溯】专题一:递归(二)
c++·笔记·算法·leetcode
愚润求学4 小时前
【Linux】基础 IO(一)
linux·运维·服务器·开发语言·c++·笔记
Wallace Zhang4 小时前
STM32F103_LL库+寄存器学习笔记22 - 基础定时器TIM实现1ms周期回调
笔记·stm32·学习
大白的编程日记.5 小时前
【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区
linux·笔记·学习
孞㐑¥5 小时前
Linux之进程控制
linux·开发语言·c++·经验分享·笔记
Alessio Micheli5 小时前
奇怪的公式
笔记·线性代数
愚润求学5 小时前
【Linux】简单设计libc库
linux·运维·开发语言·c++·笔记
chennalC#c.h.JA Ptho5 小时前
Bodhi linux 系统详解
linux·经验分享·笔记·系统架构·系统安全