当前位置:首页 >> 脚本专栏

python包的导入方式总结

1、from ... import 导入

from package import module1, module2, module3, ... ...

此种导入方法不执行 __init__ 的内容。

from pkg01 import p01
p01.sayHello()

2、from package import *

导入当前包 __init__.py 文件中所有的函数和类。

使用方法

func_name()
class_name.func_name()
class_name.var

3、import package.module

导入包中某一个具体的模块。

使用方法

package.module.func_name
package.module.class.fun()
package.module.class.var

知识点扩展:

模块的导入方式

  • 模块就是.py类型的Python文件
  • 导入时不需要.py后缀,直接导入文件名即可
  • 利用import直接导入:
  • 语法:import module_name
  • 使用方式:module_name.class_name或者module.func_name
  • 利用import导入模块并设置一个别名
  • 语法:import module_name as XXX
  • 使用方式:XXX.class_name或者XXX.funct_name
  • 借助from复制模块的属性,可以实现只导入模块中的部分类或函数或变量
  • 语法:from module_name import class_name, funct_name
  • 使用方式:直接调用函数或实例化类即可
  • 但要注意,from把变量从模块中导入后,会导致相同名称的变量被覆盖,也就是说不同模块的命名空间会在此处重叠。
  • 借助from...import *导入模块全部内容
  • 语法:from module_name import *
  • 使用时直接调用函数或实例化类即可
  • 借助importlib模块实现导入以数字开头的模块
  • 语法:import importlib
  • XXX = importlib.import_module("module_name")
  • 使用时XXX.class_name或者XXX.func_name

包的导入方式

  • 包就是包含很多模块的文件夹
  • 包内还可以有子包
  • 利用import直接导入包(仅仅导入__init__.py中的内容)
  • 语法:import package_name
  • 直接导入一个包,仅仅可以使用_init_.py中的全部内容
  • 使用:package_name.func_name 或者 package_name.class
  • 导入包中的某一个模块
  • 语法:import package_name.module_name
  • 使用:package_name.module_na112afme.func_name或
  • package_name.module_name.class_name