Python3_import和自定义模块
2019-03-22 本文已影响4人
唐_sri
一、模块和import
1、模块的定义
模块在Python中就是一系列py文件,可自己定义也可使用Python自带的或第三方的模块
在Python中模块可分为3种类型:
- Python标准库
- 第三方模块
- 自定义模块
2、import
import的的功能:
- 执行对应的文件
- 引入变量名(函数)
使用方法:
import sys
print(sys.path)
或
from sys import path
print(path)
import的本质:
import会在执行的文件中运行上面的代码输出的目录中进行查找是否存在需要导入的模块,如果存在则导入,如果不存在则报错
二、自定义模块
Python支持自定义模块,具体定义的方法如下:
1、当前目录的调用
目录结构:
10、模块
|
|--cal.py
|--模块.py
cal.py内容
def add(x, y):
return x + y
def sub(x, y):
return x - y
模块.py内容
import cal
print(cal.add(1, 3))
运行模块.py结果:
4
2、一层目录的调用
目录结构:
10、模块
|
|--test
| |--__init__.py
| |--cal.py
|--__init__.py
|--模块.py
cal.py内容
def add(x, y):
return x + y
def sub(x, y):
return x - y
模块.py内容
from test import cal
print(cal.add(1, 3))
运行模块.py结果:
4
3、多层目录的调用
目录结构:
10、模块
|
|--test
| |--__init__.py
| |--test1
| |--__init__.py
| |--cal.py
|--__init__.py
|--模块.py
cal.py内容
def add(x, y):
return x + y
def sub(x, y):
return x - y
模块.py内容
from test.test1 import cal
print(cal.add(1, 3))
运行模块.py结果:
4
我们可以看到不管是一层调用还是多层调用都会在需要调用的模块的文件夹中放一个名为init.py的文件,该文件通常是空的,但如果没有这个文件我们创建的文件夹就是一个普通的文件夹,无法在其他py文件中导入该文件夹下的模块;但如果定义了一个init.py文件改文件夹就是一个包,我们就可以在其他py文件中导入该文件夹下的模块;所以在对于的模块中必须要创建一个init.py文件。