关于python导包问题(新手向)

包和模块

首先要弄清这两个概念, 在python 中 一个文件夹中包含__init__.py 文件(这个文件是包的初始化文件,在你导入包或包下面的模块的时候,这个文件会最开始运行),就会被python看做一个包, 包中包含模块, 模块就是python的文件, 例如xxx.py

import

如果单独使用 import导入, 那么 import 可以有这几种格式:

importimport.模块
import.子包.模块

他们导入方式对应的调用方式分别为(假设调用模块下面的函数):

.模块.函数().模块.函数().子包.模块.函数()

也就是说, 当使用import导入的时候,要使用模块一个函数需要将 import 后面的东西都加上才可以使用。
当然这里的举的例子是函数()其实也可以是模块中的全局变量
使用 import 导入有一条注意:不能直接导入模块下面的东西(函数,类,全局变量), 最多只能到模块

from import

这种导入可以减少你调用模块下函数的代码量
from import 可以有一下几种格式

fromimport 模块
from.模块 import 函数
from.子包.模块. import  函数
fromimport 子包

他们导入方式对应的调用方式分别为(假设调用模块下面的函数):

模块.函数()
函数()
函数()
子包.模块.函数()

调用方式遵循我上面说的 使用import导入时, 调用其模块中函数调用规则, 也就是调用其中函数,要将 import 后面的当做前缀都写一遍xx.xxx.xx.函数(), 而例子中 from 包.模块 import 函数 就可以直接调用函数, 所以 调用的时候是根据 import 内容决定的。
使用from import 导入还有一个规则, 就是 import 只能导入一个东西, 或模块, 或函数,所以 from 包 import 模块.函数这种写法是错误的, 也就是from importimport后面不能有.

总结

1. 在导入的时候 无论是from 还是 import , 模块后面都不可以与模块中内容(全局变量,类,函数)进行.连接, 调用的时候可以
2. 调用的时候, 前缀要加上 import 后面的内容
3. from import 这种导入模式中 import 后面只能是一个层级, import 后面不能有 .

posted @ 2020-06-14 12:38  Hello_wshuo  阅读(54)  评论(0编辑  收藏  举报