Python模块包中__init__.py文件功能分析

本文实例讲述了Python模块包中__init__.py文件功能。分享给大家供大家参考,具体如下:

用django做开发已经一年多的时间,但基本没注意python模块中__init__.py文件存在的意义,偶然看到对它的介绍吓一大跳,这个文件太重要了

模块包:

包通常总是一个目录,目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。

差不多就像这样吧:

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

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

import Package1

或者调入一个子模块和子包:

from Package1 import Module1
from Package1 import Package2
       ,import Packag1.Module1
       ,import Packag1.Package2

可以深入好几层包结构:

from Package1.Package2 import Module1
           ,import Package1.Package2.Module1

大致就这样吧,我觉得,包的精髓应该是在 __init__.py 这个文件之中的。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python中__init__.py文件的作用详解

    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件. 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能.我们在导入一个包时,实际上是导入了它的__init__.py文件.这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入. # package # __init__.py import re import urllib import sys impo

  • 详解Python中的__init__和__new__

    一.__init__ 方法是什么?使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候.例如: 复制代码 代码如下: # -*- coding: utf-8 -*- class Person(object):    """Silly Person""" def __init__(self, name, age):        self.name = name

  • python中的__init__ 、__new__、__call__小结

    1.__new__(cls, *args, **kwargs)  创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身2.__init__(self, *args, **kwargs) 创建完对象后调用,对当前对象的实例的一些初始化,无返回值,即在调用__new__之后,根据返回的实例初始化:注意,这里的第一个参数是self即对象本身[注意和new的区别]3.__call__(self,  *args, **kwargs) 如果类实现了这个方法,相当于把这个类型

  • Python类方法__init__和__del__构造、析构过程分析

    最近学习<Python参考手册>学到Class部分,遇到了类的构造析构部分的问题: 1.什么时候构造? 2.什么时候析构? 3.成员变量如何处理? 4.Python中的共享成员函数如何访问? ------------------------ 探索过程: 1.经过查找,Python中没有专用的构造和析构函数,但是一般可以在__init__和__del__分别完成初始化和删除操作,可用这个替代构造和析构.还有一个__new__用来定制类的创建过程,不过需要一定的配置,此处不做讨论. 2.类的成员函

  • Python RuntimeError: thread.__init__() not called解决方法

    在写一个多线程类的时候调用报错 RuntimeError: thread.__init__() not called 复制代码 代码如下: class NotifyTread(threading.Thread):      def __init__(self, params):          threading.Thread.__init__(self)  #here......          self.params = params            def run(self): 

  • 详解Python中的__new__、__init__、__call__三个特殊方法

    __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一个参数是self. __call__ : 对象可call,注意不是类,是对象. 先有创建,才有初始化.即先__new__,而后__init__. 上面说的不好理解,看例子. 1.对于__new__ class Bar(object): pass class Foo(object): def __new__(cls

  • 详细解读Python中的__init__()方法

    __init__()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是__init__()参数值可以有多种形式. 因为有很多种方式为__init__()提供参数值,对于对象创建有大量的用例,我们可以看看其中的几个.我们想尽可能的弄清楚,因此我们需要定义一个初始化来正确的描述问题区域. 在我们接触__init__()方法之前,无论如何,我们都需要粗略.简单地看看在Python中隐含的object类的层次结构. 在这一章,我

  • Python模块包中__init__.py文件功能分析

    本文实例讲述了Python模块包中__init__.py文件功能.分享给大家供大家参考,具体如下: 用django做开发已经一年多的时间,但基本没注意python模块中__init__.py文件存在的意义,偶然看到对它的介绍吓一大跳,这个文件太重要了 模块包: 包通常总是一个目录,目录下为首的一个文件便是 __init__.py.然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了. 差不多就像这样吧: Package1/ __init__.py   

  • Python包中__init__.py文件的作用与用法实例详解

    目录 前言 一.__init__.py文件简介 二.__init__.py文件的使用案例 2.1.没有__init__.py文件的目录,使用import xx.xx会报错吗? 2.2.在__init__.py文件中定义变量或者逻辑将在导入时候被执行 2.3.在__init__.py文件中定义变量或者方法,可以被直接导入使用 2.4.在__init__.py文件中使用__all__方法 总结 前言 在Python工程中,我们经常可以看到带有“__init__.py”文件的目录,在PyCharm中,

  • Python中__init__.py文件的作用

    目录 1 init文件夹图标 2 init.py导入包方式 2.1 单个导入 2.2 批量引入(定义__all__用来模糊导入) 3 实例 4 其他常见问题 4.1 使用__init__.py文件的优点 4.2 没有__init__.py文件的目录,使用import xx.xx会报错吗? 4.3 根据导入模块和主程序不同import方式 1 init文件夹图标 在PyCharm中,带有__init__.py这个文件的目录被认为是Python的包目录,与普通目录的图标有不一样的显示.如下图所示,d

  • 深入理解Python中__init__.py文件

    目录 1. 简介 1.1 模块(Module)和包(Package)的概念 1.2 __init__.py文件简介 2. __init__.py内容写法 2.1 __init__.py文件内容 2.2 __init__.py内容解释 1. 简介 1.1 模块(Module)和包(Package)的概念 模块是程序,任何Python程序都可以作为模块导入.写在脚本.py文件中的函数,比如xx.py,可以在另一个模块或者脚本中通过import xx进行导入.如果要导入xx.py中的函数yy,就写成f

  • 如何从Python的cmd中获得.py文件参数

    代码: import sys # 导入系统模块获得cmd的参数 import traceback def TEST(params): print(type(params)) if __name__ == '__main__': try: params = None # 获得传入参数 if len(sys.argv) > 1: params_str = '' for i in range(1, len(sys.argv)): params_str += sys.argv[i] if params_

  • Python包,__init__.py功能与用法分析

    本文实例讲述了Python包,__init__.py功能与用法.分享给大家供大家参考,具体如下: 包: 为了组织好模块,将多个模块组合为一个包,所以包用于存放python模块 包通常是一个文件夹,当文件夹当作包使用时,文件夹需要包含__init__.py文件 __init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from ... import * 语句使用的,__all__中定义的模块将在from ... import * 中全部导入 目

  • Python 读取位于包中的数据文件

    问题 你的包中包含代码需要去读取的数据文件.你需要尽可能地用最便捷的方式来做这件事. 解决方案 假设你的包中的文件组织成如下: mypackage/     __init__.py     somedata.dat     spam.py 现在假设spam.py文件需要读取somedata.dat文件中的内容.你可以用以下代码来完成: # spam.py import pkgutil data = pkgutil.get_data(__package__, 'somedata.dat') 由此产

  • 在cmd中运行.py文件: python的操作步骤

    1 打开cmd, 不改变运行的目录: 输入python 空格  调试好的python文件路径 或者python 空格  将python文件拖入cmd中 2 打开cmd 输入要改变的路径盘 比如:E: (回车键) 输入路径languang\sublime\pythonTest.py 回车运行 以上这篇在cmd中运行.py文件: python的操作步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 在CMD命令行中运行python脚本的方法

  • python中关于py文件之间相互import的问题及解决方法

    目录 问题背景 实例演示 问题背景 调试脚本时,遇到一个问题:ImportError: cannot import name 'A' from 'study_case.a' (/Users/rchera/PycharmProjects/test/study_case/a.py) 具体情况是这样婶儿的: 前些日子写了一个py文件,它的功能主要是创建数据(暂且称为create_data.py,每条数据会生成一个唯一的id): 同时写了另一个py文件,它的功能主要是操作数据,例如对数据进行编辑.删除等

随机推荐