python的package,python中的pack

  python的package,python中的pack

  包是指包,是一个层次化的文件目录结构。它定义了由N个模块或N个子包组成的python应用执行环境。Popular:包是包含__init__的目录。py文件,它必须有这个__init__。py文件和其他模块或子包。

  但这可以分为两种情况。第一种情况是空的__init__。py文件,另一种情况是__init__。编写了代码的py文件。无论是空的还是有内容的,这个目录都会被认为是一个包,是一个logo。

  相关:《Python基础教程》

  package的初始化工作

  导入包时,__init__的代码。py只会执行一次。

  导入

  编译

  导入

  包自__init__中的可执行代码。py会在导入包的时候执行,注意把你的代码放在包里尽量消除副作用,比如把代码尽量封装到函数或者类里。

  __init__.py内的导入顺序

  当我尝试导入时

  FrompackageImportSomething导入语句会先检查某物是否是__init__的变量。py,然后检查是否是子包,然后检查是否是模块,最后抛出一个ImportError。

  所以检查顺序如下:

  (1)变量在_ _ init _ _。py文件

  (2)是包内的子包吗?

  (3)是包里的模块吗?

  看个例子

  我们有一个具有以下结构的包

  a.py文件中有一个函数。

  defbar():

  Print (hello,函数 bar 来自模块 a 调用)在b.py文件中有一个函数

  deffoo():

  Print (hello,从模块 b 调用的函数 foo )然后我们添加一个空__init__。简单包中的py文件。

  让我们看看导入simple_package时会发生什么(在simple_package中激活python shell或simple_package的路径包含在python的sys.path或Python的path环境变量中)

  导入简单包

  简单包

  /home/Bernd/Dropbox(boden SEO)/websites/python-course . eu/examples/simple_package中的模块“simple _ package”

  /__init__。py

  简单_包. a

  回溯(mostrecentcalllast):

  文件 stdin ,第1行,在模块中

  NameError:name未定义名称“a”

  简单_包. b

  回溯(mostrecentcalllast):

  文件 stdin ,第1行,在模块中

  错误:名称“b”未定义我们可以看到simple_package已成功导入,但a.py和b.py尚未导入。

  当然,如果想用import simple_package自动加载模块A或B,有两种方法。

  第一种是在__init__中导入模块A或B。py,然后保存,激活python的交互环境。

  #__init__。巴拉圭

  重要的

  Importb再次尝试导入simple_package时,可以使用simple_package.a.bar()来使用模块a中的bar()函数。

  第二种方法是手动导入。当要使用模块A中的bar()函数时,需要手动导入。

  Importsimple_package.aasa然后您可以将bar()函数与. bar()一起使用。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: