文档章节

Python模块包中__init__.py文件的作用

疯子张
 疯子张
发布于 2014/12/31 14:19
字数 204
阅读 5126
收藏 2

Package1/ __init__.py    Module1.py    Module2.py    Package2/ __init__.py       Module1.py       Module2.py 

我们可以就这样导入一个包: 

from Package1 import Module1

from Package1 import Package2

import Packag1.Module1

import Packag1.Package2 

__init__.py 控制着包的导入行为。假如 __init__.py 为空,那么仅仅导入包是什么都做不了的。

>>> import Package1

>>> Package1.Module1

Traceback (most recent call last):

 File "<pyshell#1>", line 1, in ? 

 Package1.Module1AttributeError: 'module' object has no attribute 'Module1' 

我们需要在 __init__.py 里把 Module1 预先导入:

#文件 __init__.py

     import Module1 

>>> import Package1

>>> Package1.Module1

<module 'Package1.Module1' from 'Module.pyc'>


__init__.py 中还有一个重要的变量,叫做 __all__。全部导入

from PackageName import * 
这时 import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。

比如: 
#文件 __init__.py

__all__ = ['Module1', 'Module2', 'Package2'] 




© 著作权归作者所有

共有 人打赏支持
疯子张
粉丝 4
博文 80
码字总数 20167
作品 0
海淀
私信 提问
Python __init__.py 作用详解

原文地址:https://www.cnblogs.com/Lands-ljk/p/5880483.html init.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有init.py 文件。 通常init.py 文件为空,但是...

oldpan
2017/11/26
0
0
python 入门笔记 (模块)

一、模块基础 1、模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。实际的角度,模块往往对应Python程序文件。 每个文件...

QEfarmer
2015/04/03
0
1
Python全栈工程师(包、模块 的导入)

ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想 为了信仰                         Python人工智能从入门到精通 $ pip3 install tensorflow :   第三...

巴黎香榭
07/19
0
0
【原创】研究Tribler过程中遇到的Python相关问题总结

【如何导入包】 两点搞定,就可以import了: package的当前目录下要有init.py文件,表示它自己是个package package的parent目录要在PYTHONPATH中 【打开文件的路径和导入模块的路径】 打开文件...

摩云飞
2012/10/23
0
1
学习笔记(11月09日)--import&datetime

四周四次课(11月9日) 在日常的开发工作中,我们要写很多的python代码,如果都写在一个文件中,会导致代码特别难维护,为了拓展代码的可维护性,我们把函写在不同的文件里,这样每个文件包含...

wanyang_wanyang
07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
44分钟前
1
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
46分钟前
1
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
53分钟前
3
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
3
0
聊聊storm trident batch的分流与聚合

序 本文主要研究一下storm trident batch的分流与聚合 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout) .p......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部