python全栈开发_day16_包

一:包

  1)包就是管理一系列模块的文件夹

  2)包中有一个__init__.py文件来专门管理每一个模块(在__init__文件中不建议import导入模块,不建议as起别名)

二:导入完成的工作

  1)编译执行模块文件形成对应的pyc文件

  2)形成模块的全局名称空间

  3)通过import关键字产生名字指向对应的地址

  ps:导入的顺序为:内存》》内置模块》》自定义模块

三:绝对导入

  本质:import后直接导入,或者from 包名.模块 import 功能

  必须有绝对的路径进行导入

import new.nw

new.nw.a()

#此处导入了new文件夹中得到nw模块,nw中有一个功能a()

  循环导入

a模块中引用b模块
b模块中引用a模块

通常先创建变量,再去引用,否则可能会出现引用的函数中需要用的变量没有产生。

四:相对导入

  本质:利用.语法,获取当前文件所在文件夹路径(..为回到上层文件夹,以此类推,不能退出底层文件夹)

from ...pkmm.gn import a

#当前文件所在的文件夹的上上层文件夹中有一个文件夹pkmm中有一个gn模块,导入其中的a功能
#相对导入的py文件无法自执行

  导包时应确定包在环境变量中,导入的文件夹名就是包名

原文地址:https://www.cnblogs.com/xuxingping/p/10678059.html