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__时,只会导入 中指定的模块或变量。

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

相关推荐
快下雨了L3 小时前
C++面试笔记(持续更新...)
笔记
柃歌4 小时前
【UCB CS 61B SP24】Lecture 7 - Lists 4: Arrays and Lists学习笔记
java·数据结构·笔记·学习·算法
JANGHIGH4 小时前
c++ std::list使用笔记
c++·笔记·list
柃歌4 小时前
【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记
java·数据结构·笔记·学习·算法
大溪地C5 小时前
Git 合并冲突解决与状态分析笔记
笔记·git
BUG 劝退师5 小时前
C语言预处理学习笔记
c语言·笔记·学习
花王江不语7 小时前
设计模式学习笔记
笔记·学习·设计模式
前端熊猫8 小时前
CSS Grid 布局学习笔记
css·笔记·学习·grid
肥肠可耐的西西公主9 小时前
前端(AJAX)学习笔记(CLASS 2):图书管理案例以及图片上传
前端·笔记·学习
Long_poem9 小时前
【自学笔记】Spring Boot框架技术基础知识点总览-持续更新
spring boot·笔记·后端