python包的中 _init _.py文件介绍

我们新建python包时常常会看到一个__init _.py文件。

作用介绍:

:这个文件是属于python包的,这个文件用作于标识python包,当一个文件夹有这个__init _.py文件时,python将把其当成一个模块包进行管理。你打开文件可以发现文件是空的。

:这个文件可以设置变量控制模块的模糊导入,如下:

我现在再包K里面有2个.py文件,如下图片所示:

文件PY1.py内容如下:

def holle1():print('holle1')

文件PY2.py内容如下:

def holle2():print('holle2')

文件__ init.py __内容如下:

__all__ = ['PY2']
print('__init__')

现在我再另一个文件里面导入K包里面的全部模块

from K import *
PY2.holle2()
PY1.holle1()          #这里将抛出异常#输出结果如下:
'''__init__       #这里说明了__init__.py被运行了holle2这里抛出异常Traceback (most recent call last):......NameError: name 'PY1' is not defined
'''

抛出异常的原因很简单,原因是因为我在__ init __.py文件里面设置了变量 _all _ 这个变量,这个变量设置的是当将包内的全部模块进行导入时,‘*’号将代表 _ all _变量里面的模块名。并且这里导入的是PY2文件,并不是init _.py文件,但是文件还是运行了。所以说init文件就是包的一部分,不单单是标识作用。

:当成一个模块来使用(不推荐)

现在我把_init _.py文件内容更改成如下:

print('__init__')
A = ['123']def InitFunction():print('This is the function of __init__.py')

其他文件中:

import  K
print(K.A)
print(type(K))
K.InitFunction()

输出结果如下:

__init__
['123']
<class 'module'>
This is the function of __init__.py

init_

[‘123’]
<class ‘module’>
This is the function of _ init_.py

python包的中 _init _.py文件介绍相关推荐

  1. python执行txt中代码_【技术分享】文件解压之过 Python中的代码执行

    预估稿费:200RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 一.前言 Python中负责解压压缩文件的代码实现上并不安全,存在目录遍历漏洞,攻击者可以利用该漏洞覆盖_ ...

  2. python setting.py_python基础教程:Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  3. 第四章:Python项目组织结构-第一节:包、模块以及__init__.py文件

    部分参考:菜鸟教程 文章目录 思维导图 一:Python项目组织结构 (1)Python项目组织结构 (2)包与模块的作用 (3)包与模块的名字 二:导入模块 (1)import (2)from... ...

  4. python基础教程:Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  5. 记事本写python怎么运行-从头学Python之编写可执行的.py文件

    Python可是真强大.但他具体是怎么强大的,让我们一点一点来了解吧(小编每天晚上下班回家会抽时间看看教程,多充实下自己也是好的). 废话不多说,就讲一下这个背景吧: 事情是这个样子的~本着好学的精神 ...

  6. python脚本之家 包的创建和调用_python基础之包的导入和__init__.py的介绍

    调用同级目录: – src |– mod.py |– test.py 若在程序test.py中导入模块mod, 则直接使用 import mod 或 from mod import * 调用子目录下的 ...

  7. 在Qt for Python应用程序中使用Designer UI文件

    在Qt for Python应用程序中使用Designer UI文件 在Qt for Python应用程序中使用Designer UI文件 将表单转换为Python代码 UiTools方法 在Qt f ...

  8. Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  9. Linux中直接运行py文件

    (1) 创建*.py文件* nano与vim创建文件时,如果文件不存在时,创建并打开:文件存在时,直接打开. nano方式: [coggle@i-7lo31rsr coggle]$ nano nano ...

最新文章

  1. 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用
  2. ngrx注入到应用类构造函数里的store变量
  3. 第二十二章 面向对象
  4. Linux内核参数(如kernel.shmmax)及Oracle相关参数调整(如SGA_MAX_SIZE)
  5. 一般判五年几年能出来_A股十年不涨的“元凶”被揪了出来,指数不该被冤枉...
  6. 手动给64位centos6.3版本linux的firefox安装Adobe flash player
  7. ESFramework Demo -- P2P通信Demo(附源码)
  8. 【bzoj5090】组题 分数规划
  9. 深入浅出JavaScript (四)DHTML
  10. asp在线html编辑器,ASP下使用FCKeditor在线编辑器的方法
  11. 模块化存储区域网络(SAN)解决方案的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  12. c语言:简单的客户管理系统
  13. social-share,社会化分享组件之jquery版
  14. 程序员学英语之如何优雅的将单词本导出的txt文本转换为Excel
  15. win7 计算机设置命令,Win7设置开机启动项命令的方法
  16. Android Notes | 集成推送那点事(友盟/Mob(Flutter)/FCM)
  17. win10 纯净版系统如何添加字体的方法
  18. 有趣的23000----整理(07)A词根
  19. zxing 二维码、带logo二维码生成
  20. 如何设计一个高并发的存储系统

热门文章

  1. Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法
  2. GLSL实现HDR Rendering 【转】
  3. Redhat和ubuntu的区别
  4. python中fork创建新的进程
  5. Eclipse6里面SSH整合说明
  6. C#抓取网页程序的实现浅析
  7. Java中JSON字符串与java对象的互换实例详解
  8. Maven警告:“java使用了未经检查或不安全的操作。java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。“
  9. django.core.exceptions.ImproperlyConfiguredmysqlclient 1.3.13 ornewer is required you have 0.9.2(亲测)
  10. PHP7开启opcache打造强悍性能