模块

模块基础

模块的定义

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

包的定义

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

此文件夹下需要有一个__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__':

posted on 2019-06-05 19:41  heroknot  阅读(90)  评论(0)    收藏  举报