Skip to content

13.模块与包

13.1. 模块的概念:

一个.py文件就称为一个模块

13.2. 导入模块中类或函数的方式:

img

module1.py

python
def output():
    print('hello neuedu')

13.2.1. 方式一:import 模块名

使用时:模块名.函数名()

python
import module1
module1.output()

13.2.2. 方式二 :from 模块名 import 函数名

使用时:函数名()

python
from module1 import output
output()

13.2.3. 方式三: from 模块名 import *

使用时:函数名()

python
from module1 import *
output()

13.2.4. 方式四:from 模块名 import 函数名 as tt(自定义)

注意原来的函数名将失效

使用时:tt()

python
from module1 import output as tt
tt()

可以在模块当中定义一个变量all,指定导出的函数子集:

使用all的影响: 后面的[]里面写什么函数名,使用from 模块名 import 方式导入时导入什么 all如果没有这个变量将全部导入(all仅限 于from 模块名 import 这种导入方式)

all示例:

python
__all__=['output']
def output():
    print('hello neuedu')

def output2():
        print('hello output2')

以下代码报错

from module1 import *
output2()

13.3. 包的概念

概念:包就是一个文件夹,里面包含了若干py文件以及一个_init_.py文件。

img

module3.py

python
def output():
    print('hello neuedu')

def output2():
        print('hello output2')

13.4. 导入包中函数,以及模块的方式:

13.4.1. 方式一:from 包名 import 模块名

使用时:模块名.函数名()

python
from neuedu import module3
module3.output()

13.4.2. 方式二:from 包名.模块名 import 函数名

使用时:函数名()

python
from neuedu.module3 import output
output()

13.4.3. 方式三 :import 包名.模块名

使用的时候 包名.模块名.函数名()

python
import neuedu.module3
neuedu.module3.output()

13.4.4. 方式四:from 包名 import *

前提是:将 init.py 文件中写入all变量(写入方式同模块导入的写入方式) 。 变量当中写入哪个模块则导入哪个模块,不写则什么都不导入 使用时:模块名.函数名() *init*.py

python
__all__ = ['module3']
from neuedu import *
module3.output()

13.4.5. 方式五:import 包名

前提是:在包里面的init.py 文件里写入 from . import 模块名 init.py里面导入哪个模块 通过本方式就能使用哪个模块

使用时:包名.模块名.函数名() *init*.py

python
from . import module3
import neuedu
neuedu.module3.output()

Released under the MIT License.