一、导入模块和包

模块相当于一个.py文件,包相当于带有个__init__.py一个文件夹,既可按模块导入也可按包导入。

1.导入模块或包

import 包名或模块名 (as 别名),包名或模块名 (as 别名)

2.导入模块或包下的程序单元

from 包名或模块名 import 程序单元 (as 别名),程序单元 (as 别名)

如果导入的是模块,程序单元指的是py文件下的变量、方法、类

如果导入的是包,程序单元指的是包中的py文件

3.两种方式导入的区别

用import方式导入,引入的方法需要带上模块名

用from方式导入,引入的方法不需要带模块名

例如:有两个文件 a.py和b.py

b.py

def dog():
print('汪汪汪')
def cat():
print('喵喵喵')
class student:
age=18
name='tom'
def address(self):
print('湖北路')

a.py 用import方式引入

import b
b.dog()
b.student.address("")

a.py用from..import方式

from b import *
b.dog()
b.student.address("")

4.部分导入

(1)指定导入的模块或方法

对于模块 部分导入指的是导入某个变量方法或类

from b import dog,student
dog()
student.address("")
cat()#报错

(11)python 模块和包-LMLPHP

(2)使用内置__all__

b.py

def dog():
print('汪汪汪')
def cat():
print('喵喵喵')
class student:
age=18
name='tom'
def address(self):
print('湖北路')
__all__=['dog','student']

a.py

from b import *
dog()
student.address("")
cat()#报错

(11)python 模块和包-LMLPHP

但是可以使用局部引入

from b import dog,student,cat
dog()
student.address("")
cat()

(11)python 模块和包-LMLPHP

二、定义包

(11)python 模块和包-LMLPHP

创建一个 module1文件夹,里面创建两个文件

hello.py

def hello():
print('hello')

hi.py

def hi():
print('hi')

(1)用.子模块方式导入

import module1.hi
module1.hi.hi()

(2)或者创建__init__文件

__init__.py

from . import hi #从当前包中导入hi模块
05-29 00:28