首页 > 编程语言 >Python __init__.py—将文件夹设置成Python模块

Python __init__.py—将文件夹设置成Python模块

时间:2023-08-26 12:22:37浏览次数:160  
标签:__ __. Python py init 模块

介绍

包的标识符:__init__.py用于指示 Python 解释器将包含它的目录标识为一个模块包(module package),所以它可以是一个空文件。但通常会包含一些关于包的元信息,比如包的版本号或作者信息。这些信息可以通过在 __init__.py 中定义变量来存储,并在包的其他模块中使用。

导入模块和变量:你可以在 __init__.py 文件中导入包内的模块,以便在导入包时,这些模块也会自动加载。

控制包的导出内容: 通过 __all__ 变量,你可以控制哪些模块和变量会被导入包的用户引入。这可以帮助你隐藏内部实现细节,只暴露需要公开的接口。

代码示例

现有一个目录如下

script*.py文件的内容为:print("run script*");__init__.py文件的内容如下

# __init__.py

print("hello")

#包的标识符
__version__ = '1.0'
__author__ = 'Your Name'

#导入模块和变量
from .subtest import script3
from .script2 import *

#控制包的导出内容
__all__ = ['script1', 'script4']
>>> import test
hello
run script3
run script2
>>> from test.subtest import script4
run script4

从上面的运行结果可以看到,当test目录下有__init__.py时,导入test这个模块,会自动执行__init__.py的内容。

标签:__,__.,Python,py,init,模块
From: https://www.cnblogs.com/chaimy/p/17635739.html

相关文章

  • 二、InnoDB存储引擎
    2.3InnoDB体系架构1)后台线程MasterThread:核心线程,主要负责将缓冲池的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲、UNDO页的回收等。IOThread:处理IO请求PurgeThread:事务被提交后,其所使用的undolog可能不再需要,因此需要PurgeThread来回收已经使......
  • CRMEB
    后台更换域名,不能简单的将配置里面的域名改成新域名,那样会导致部分图片无法正常显示具体步骤1.将设置里面的域名保持旧域名先不改变2.在维护-数据维护-清除数据里面找到更换域名,然后将新域名填写进去3.替换完成之后,将设置里面的域名改成新域名  在CRMEB的多商户版中,更换......
  • Linux设备驱动开发详解——学习笔记
    Linux设备驱动概述计算机系统的运转需要软件和硬件共同参与,硬件是底层基础,软件则实现了具体的应用。硬件和软件之间则通过设备驱动来联系。在没有操作系统的情况下,工程师可以根据硬件设备的特点自行定义接口。而在有操作系统的情况下,驱动的架构则由相应的操作系统来定义。驱动存......
  • fastadmin列表宽度变小,如何让列字段内容自动换行
    首先,正常来讲,fastadmin列宽度没有属性约束,会随着字段值的长度自动伸缩。但fastadmin可以控制列的宽度,看一下控制列宽度后的样式。{field:'filename',title:'附件名称',cellStyle:function(){return{css:{"max-width":"150px",}}}},如下图 但这样不美观,如何让字......
  • 最短路练习
    T1SightseeingCowsG我们先考虑如何求平均乐趣值。1.总乐趣为\(\sum^n_{i=1}f_i\timess_i\),其中\(f_i\)为第\(i\)个点的乐趣值,\(s_i\)表示选不选。2.路径是个环,总长度为\(\sum^n_{i=1}e_i\timess_i\)其中\(e_i\)为从点\(i\)出发所走的边。所以最大平均......
  • 如何更改轴标签的方向?
    https://excel.dovov.com/1741.htmlvv 这将改变X轴刻度标签的方向。ActiveChart.Axes(xlCategory).TickLabels.Orientation=45'degrees 这是如何改变轴标题的方向:ActiveChart.Axes(xlCategory).AxisTitle.Orientation=81'degrees你有没有试过录制macros?......
  • 暂告一段落的vue学习以及uniapp的开始
    最近学习了VUE并且参照其他开源项目做了一个大致的框架,只余部分还需要改成自己的东西,但是这个要到一段落了,开始了小程序项目之旅,首先还是到uniapp官网查看官方资料当然了,还是要从vue3的部分开始学起跟着官方视频做了一个试例,感觉还不错,很简单然后项目正式开始了~~终于开始了......
  • Leetcode 454. 四数相加 II(4sum ii)
    题目链接给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4=[0,2]输出:2......
  • L35_用日语表达多个动作
    概述依次叙述两个或两个以上的动作时,用动词的て形将它们连接起来。例如:大涌谷に行って、黒たまごが食べたいです去大涌谷,吃黑鸡蛋。动画会话箱根には1時に着くよ我们一点到箱根。タムはなにがしたいTam,你想要做什么?大涌谷に行って、黒たまごが食べたいです我......
  • #pragma once
    pragmaonce是一个预处理指令,用于在C++源代码中防止头文件的多重包含。当一个头文件被多次包含在同一个源文件中,可能会导致重复定义和其他编译错误。为了避免这种情况,可以使用#pragmaonce来确保头文件只被编译一次。具体来说,#pragmaonce会在编译器处理源代码之前进行检查,以......