Python中各种导入方法介绍(import)

1.Python包的结构

包(package)是python模块文件(module)所在的目录,且该目录下必须存在__init__.py文件,然后存放若干的模块文件和子目录,假如子目录中也有 __init__.py ,那么这个子目录就是这个包的子包了。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__值在下面的内容中还会提到。
一个包里面可以有若干个模块。模块在Python中对应于一个.py文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可使用这些函数和变量。一般用module_name.fun_name,和module_name.var_name进行使用。
常见的包结构如下:
package_a
├── __init__.py
├── module_1.py
├── module_2.py
├── subpackage_a
    ├── __init__.py
    └── s_module_1.py
└── subpackage_b


2.导入(import)

包的导入

import package #as alias  可命名别称,下同
import package.subpackage #as alias

模块的导入

import package.moudule #as alias
import package.subpackage.moudule #as alias

使用时必须用全路径名。

from package import *
from package.subpackage import *

全部导出包中定义过的模块。 如果包的__init__.py定义了一个名为__all__的列表变量,它包含的模块名字的列表将作为被导入的模块列表。如果没有定义__all__, 这条语句不会导入所有的package的子模块,它只保证包package被导入,然后导入定义在包中的所有名字。

from package.subpackage import module
from package.subpackage import module as alias

这样导入,在使用的时候可以直接使用模块名而不用加上包前缀。

另外,dir()可以查看模块定义了什么名字(包括变量名,模块名,函数名等)

函数或变量的导入

from module import item # as alias
from package.subPackage.module import item # as alias

这样可以直接从模块中导入名字到符号表,但模块名字不会被导入。

from module import *     

这样可以把模块中的所有名字全部导入,除了那些以下划线开头的名字符号。不建议使用,不清楚导入了什么符号,有可能覆盖自己定义的东西。

3.总结

1. 当使用from package import name时,name可以是package的子模块或子包,或是其他的定义在包中的名字(比如一个函数、类或变量)。首先检查name是否定义在包中,如果没找到,就认为name是一个模块并尝试加载它,失败时会抛出一个ImportError异常。

2. 当使用import name.subname.subsubname语法时,倒数第二个name(在此处为subname)必须是包,最后一个name(在此处为subsubname)可以是一个模块或包,但不可以是类、函数和变量。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值