46、模块

小白量化 2025-12-10 15:03:29 37 举报

1、模块
1.1 含义
在Python中,一个 .py 文件即被视为一个模块,其中可以定义函数、变量等

模块:一个包含Python代码的.py文件
模块名 = 文件名(不含.py扩展名)
示例:math.py 代表 math模块

1.2 分类
(1)内置模块
内置模块是Python自带的模块,可以直接导入使用。例如:os、copy、math、random、decimal等模块。

Ctrl+鼠标左键,可以查看模块内的功能!

使用:模块名.功能名

# 示例
import random   # 导入随机模

# 随机生成5个字节
print(random.randbytes(5))

# 生成一个1-100之间的随机数
print(random.randint(1, 100))  # 包前包后

# 从非空序列中随机选择一个元素
print(random.choice(["剪刀", "石头", "布"]))

(2)第三方模块【第三方库】
第三方模块是别人编写的模块,需要提前安装才能使用。例如:requests(爬虫)、pandas(数据分析)、numpy、matplotlib、scrapy、pyinstaller等。
在cmd或终端中(win+r),使用pip命令:① pip install 模块名

                                                                 ② pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple   # -i 指定源下载

# 示例
import requests

(3)自定义模块
自定义模块是开发者自己编写的模块,例如:my_module.py。
在创建自定义模块时,应确保命名遵循标识符规定以及变量的命名规范,并且要避免与内置模块以及第三方模块命名发生冲突,以防止模块功能出现异常或无法使用!
1.3 导入模块

随着程序的不断扩展和完善,一个 .py 文件中可能会包含大量的代码行、函数和变量等。为了便于维护和提高代码的可重用性,我们通常会将代码拆分为多个文件,即多个模块。这样做的好处是,当我们需要在其他模块中使用某个模块的功能时,只需简单地导入该模块即可,从而提高了代码的可维护性和重用性。

注意:① 导入语句一般建议写在文件最开头

             ② 同一个模块只需要导入一次
(1)import 模块名 [as 别名]:导入模块所有内容

# 示例1
import test
# 使用功能:模块名.功能
print(test.name)
test.func()
test.fund()
# 示例2
import test as t
# 使用功能:模块名.功能
print(t.name)
t.func()
t.fund()

(2)from 模块名 import 功能:从模块中导入指定功能

            from 模块名 import *:从模块中导入所有功能

# 示例1
from test import name, func
# 使用功能:功能
print(name)
func()
# fund()    # 没有导入fund,不可以调用
# 示例2
from test import *    # 从 test 模块中导入所有功能
print(name)
func()
fund()

注意:在使用from 模块名 import 功能  导入模块内容时,必须特别留意,确保不同模块之间的功能不重名,否则会产生冲突。

# 示例
from test import name
name = "xiaobai" # 本模块变量名覆盖导入模块变量名
print(name)
# 解决方式一:
# 示例
from test import name as n
name = "xiaobai" 
print(name)
print(n)
# 解决方式二:
# 示例
name = "xiaobai"
import test
print(name)
print(test.name)

1.4 以主程序的形式执行
import test    # 导入模块时,会执行模块中的所有代码
每个模块都内置了一个__name__的变量,用于记录模块的名称。
程序通过检查这个变量,可以确定代码是在哪个模块中执行的。
如果一个模块是当前正在执行的程序,而不是被导入到其他程序中,那么该模块的__name__变量的值就为"__main__";
如果该模块是被导入到其他模块中执行的,那么__name__变量的值为"模块名"

# 示例
name = "test"

def func():
    print("这是test模块中的func函数")
    
def fund():
    print("这是test模块中的fund函数")
    
print("test模块中__name__变量的值:", __name__)

if __name__ == "__main__":
    # 测试代码:测试功能是否可用
    print(name)
    func()
    fund()


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0