模块

本文深入讲解了Python中模块和包的概念,包括它们的定义、优势及常见问题,如循环导入问题的解决方法。同时,文章还介绍了模块的搜索路径以及如何在文件中正确使用模块,避免作为模块导入时执行特定代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块

模块基础

模块的定义

模块就是存放一堆函数的文件

包的定义

把一堆是模块的文件放在一个文件夹,这个文件夹就是包

此文件夹下需要有一个__init__.py文件

模块的优势

直接使用第三方模块,拿来主义

把公共功能做成自定义模块,让各个组件调用

import & from ... import ...

需要了解两者的区别

篇幅有限,这里省略100字……

循环导入问题

为什么会有循环导入问题?

模块a需要导入模块b中的b1变量来生成a1变量

模块b需要导入模块a中的a1变量来生成b1变量

两者互相牵制,故产生了此问题

# 模块a的内容
import b

a1 = b1

print(a1)
# 模块b的内容
import a

b1 = a1

print(b1)
# 报错
# NameError: name 'b1' is not defined

解决方法

# m1.py
def f1():
    from m2 import y
x = 10


f1()


# m2.py
def f2():
    from m1 import x
y = 20


f2()

模块的搜索路径

导入模块时查找模块的顺序是:

  1. 先从内存中已经导入的模块中寻找
  2. 内置的模块
  3. 环境变量sys.path中找

Python文件的两种用途

如果不希望文件被当做模块导入时,执行某些代码,可以把代码放在如下的判断语句内

if __name__ == '__main__':

转载于:https://www.cnblogs.com/heroknot/p/10981535.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值