首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python3.7包真的不需要__init__.py吗?

Python3.7包不需要init.py文件。

在Python3.3及以后的版本中,引入了一种新的包结构,称为"命名空间包"(namespace package)。命名空间包允许将一个包分散在多个目录中,而无需在每个目录中都添加一个init.py文件。

在Python3.3及以后的版本中,如果一个目录中没有init.py文件,但包含了模块文件,那么这个目录就被视为一个命名空间包。这意味着,你可以直接导入该目录下的模块,而无需通过init.py文件来定义包的初始化逻辑。

命名空间包的优势在于,它提供了更灵活的包组织方式。你可以将一个包拆分成多个子包,每个子包可以位于不同的目录中,而无需修改包的导入方式。

对于Python3.7及以后的版本,如果你的包不需要包级别的初始化逻辑,那么可以不创建init.py文件。这样可以简化包的结构,并且更符合现代Python开发的推荐做法。

然而,需要注意的是,如果你的代码需要与旧版本的Python兼容,或者你的代码将被其他旧版本的Python程序使用,那么仍然建议在包目录中添加init.py文件,以确保兼容性。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

真的懂“抓

0x01 前言 在平时和其他大佬交流时,总会出现这么些话,“抓个看看就知道哪出问题了”,“抓流量啊,payload都在里面”,“这数据流怎么这么奇怪”。这里出现的名词,都是差不多的意思?...packet,frame,flow,session区别是什么,你真的分的清楚?...在一个网络设备里面,转发无疑是最主要的工作,它具有最高的优先级,而路由协议,由于并不需要在短时间内处理大量的,所以可以把它放到次一级的优先级里面。...很难理解? 我们再打个比方。 stream就像打电话- 一方拨打电话,另一方接听,你们互相打招呼(TCP中的SYN / ACK),然后交换信息。...它的优点是: 1.易于在第3层设备上设置操作; 2.不需要布线;终端用户系统不需要软件客户端或代理。

3.2K60

代码注释的艺术,优秀代码真的不需要注释

01 前言 Aliware 前天回家路上,有辆车强行插到前面的空位,司机大哥暴躁地拍着方向盘吐槽道“加塞最可恶了”,我问“还有更可恶的”,司机大哥淡定说道“不让自己加塞的”。...有注释的代码都存在着一些瑕疵,认为足够完美的代码是不需要注释的。...有一次给老板 review 代码,当时老板提出,“你的代码缺缺少注释”,我说不需要注释,代码就能自解释。...当然,我们不需要将所有法律信息写到注释中,如例子中的跳链,引用一份标准的外部文档,会是一个更好的选择。...我们不用过分在意我们的代码是否可以脱离注释,也不需要强调因为我们的代码符合什么原则,满足什么约定,所以代码是优秀的注释是冗余的。

54020

不需要真的这个,而仅仅是需要它里面的数据

很多人提问如何安装一个免疫治疗数据队列, IMvigor210CoreBiologies ,因为它是一个100多M的压缩文件,在 http://research-pub.gene.com/IMvigor210CoreBiologies...also need to load it into your active R session: library("IMvigor210CoreBiologies") 但是你仍然是发现缺失 DESeq这个...实际上,对于这样的,原则上我们首先应该是摒弃它。...这样你可以很顺利的安装它,但是因为你强行修改了它的依赖,所以你安装的应该是一个残缺版本,如果后续它这个确实是依赖于 DESeq 里面的函数或者对象,就尴尬了。...,其实就存储在 data 文件夹: 存储在 data 文件夹 你不需要安装这样的,也不需要加载它,仅仅是load这个压缩里面的文件夹里面的对应的R数据对象文件即可。

1.3K51

Python中的模块与#学习猿地

### 的结构: ```python ''' package/ # (文件夹) ├── __init__.py # 中的初始化文件 ├── a.py # 中的模块 ├── b.py...└── ps/ # 子 ├── __init__.py ├── c.py └── d.py ''' ``` ### 的使用方法 ```python # 1....直接把当作模块导入,可以用的内容是 __init__.py文件中定义的 # 不推荐这种用法 import package package.funcpa() #2。...``` ### 相对导入 **注意:相对导入只能在非主程序的模块中使用,不需要直接运行的模块文件** ``` # 相对导入 from .名/模块名 import 模块/内容 from ..名/模块名...|---- |----- __init__.py # 的初始化文件 |---- |----- View.py # 视图函数模块 |---- |----- Controller.py# 控制器模块

35110

Python中的模块与#学习猿地

### 的结构: ```python ''' package/  # (文件夹) ├── __init__.py  # 中的初始化文件 ├── a.py        # 中的模块 ├── b.py...└── ps/  # 子   ├── __init__.py   ├── c.py   └── d.py ''' ``` ### 的使用方法 ```python # 1....直接把当作模块导入,可以用的内容是 __init__.py文件中定义的 # 不推荐这种用法 import package package.funcpa() #2。...``` ### 相对导入 **注意:相对导入只能在非主程序的模块中使用,不需要直接运行的模块文件** ``` # 相对导入 from .名/模块名 import 模块/内容 from ..名/模块名...|---- |----- __init__.py  # 的初始化文件 |---- |----- View.py      # 视图函数模块 |---- |----- Controller.py# 控制器模块

47210

解决python3中关于import的疑难杂症

是含有若干个模块的文件夹,在工程项目用包管理模块可以避免模块名冲突 __init__.py 在Python工程项目中,如果一个文件夹下有__init__.py文件就会认为该文件夹是一个package...__init__.py为空时仅用于标识当前这个文件夹是一个package __all__变量指明当该包被import *时,哪些模块module会被导入 可以利用__init__.py对外提供类型、变量及接口...绝对导入与相对导入 绝对导入和相对导入的概念只针对于内模块导入内模块,注意如果foo.py和bar.py在同一个非(没有__init__.py文件)的目录下,那么它们之间可以互相import,不存在绝对导入和相对导入的问题...导入 的导入和模块导入基本一致,只不过导入时会执行__init__.py。...如果只是导入一个import package而不指名任何模块,且中的__init__.py没有其他的初始化操作,那么包下面的模块是无法被自动导入的。 6.

1.6K30

Python3 与 C# 扩展之~模块专栏

这是要讲课的节奏?...) web/ ├── data.py ├── __init__.py └── json.py 调用web里面的 get_json()方法: from web.json import get_json...就把这个目录当成普通目录 __init__.py可以是空文件,编译器默认会把它认成名字是文件夹名的模块,eg: web 9.2.的制定化 ~ 控制可使用的模块 还记得之前讲得 __all__吧,如果你想控制里面的模块能否被访问使用...把我们之前的Code做一个,目录结构如下: ├── datalib │ ├── base │ │ ├── get_user_infos.py │ │ ├── __init__.py...其他人一起鄙视小明说道:“你自己睡大觉你自己心里没有点逼数?” 小明大囧,感觉饮料和饭钱真是白花了。。。(完)

1.4K50

单细胞预测Doublets软件汇总|过渡态细胞是真的

当然,这些R并不一定能够解决这些问题,多数的Doublet软件对异质性较高的细胞之间的预测较好,但希望通过总结这类软件,提醒大家在定义过渡态细胞时一定要反复去验证,保证数据的真实性。...Doublet软件汇总 1.DoubletFinder DoubletFinder是一种R,可预测单细胞RNA测序数据中的doublet。...S2405-4712(19)30073-0 安装(在R/RStudio中) devtools::install_github('chris-mcginnis-ucsf/DoubletFinder') 依赖...", "mygene", "tidyr", "R.utils", "foreach", "doParallel", "stringr")) install.packages("MCL")#进行安装依赖...4.DoubletDetection DoubletDetection是一个Python3,用于检测单细胞RNA-seq计数矩阵中的doublets(技术错误)。

5.5K40

学习分享|初入Anaconda3以及实践

其次有些时候在内网环境中并不可以使用pip命令来下载依赖,这就出现了需要手动安装依赖的情况,由于网络不通,采取手动安装插件库,查找85服务器是否存在插件库或网络下载插件库再传给96服务器。...eggrunning install_librunning build_pycreating buildcreating build/libcreating build/lib/avrocopying avro/__init...64creating build/bdist.linux-x86_64/eggcreating build/bdist.linux-x86_64/egg/avrocopying build/lib/avro/__init.../avro/NOTICE -> build/bdist.linux-x86_64/egg/avrobyte-compiling build/bdist.linux-x86_64/egg/avro/__init....2.0.0查看(ll)是否有libnsl依赖,在85服务器上,我查询到libnsl* 的依赖为lrwxrwxrwx 1 root root 15 Mar 15 2020 libnsl.so

27920

poetry和poet_什么是poetry

poetry-demo 这会创建一个这样的项目结构: poetry-demo ├── pyproject.toml ├── README.rst ├── poetry_demo │ └── __init...__.py └── tests ├── __init__.py └── test_poetry_demo.py 创建虚拟环境 1.使用 poetry install 命令创建虚拟环境(确保当前目录有...poetry env use python3.7 使用这个命令后,会在虚拟环境路径下创建一个envs.toml文件,用来存储哪些虚拟环境指定了Python解释器的版本。...➜ virtualenvs cat envs.toml [athena-LtyjKFV4] minor = "3.7" patch = "3.7.6" 激活虚拟环境 执行poetry的命令并不需要激活虚拟环境...: poetry update foo 卸载 使用 poetry remove 卸载一个: poetry remove foo 查找当前项目的虚拟环境 使用poetry env list可以查看当前的虚拟环境

34210

>>Python:Anaconda3

其次有些时候在内网环境中并不可以使用pip命令来下载依赖,这就出现了需要手动安装依赖的情况,由于网络不通,采取手动安装插件库,查找85服务器是否存在插件库或网络下载插件库再传给96服务器。...install_lib running build_py creating build creating build/lib creating build/lib/avro copying avro/__init...creating build/bdist.linux-x86_64/egg creating build/bdist.linux-x86_64/egg/avro copying build/lib/avro/__init...avro/NOTICE -> build/bdist.linux-x86_64/egg/avro byte-compiling build/bdist.linux-x86_64/egg/avro/__init...,在85服务器上,我查询到libnsl* 的依赖为 libnsl.so.2 libnsl.so.2.0.0 查看(ll)是否有libnsl依赖,在85服务器上,我查询到libnsl* 的依赖

28850

https 是否真的安全,https攻击该如何防护,https可以被抓?如何防止呢?

https 可以抓HTTPS 的数据是加密的,常规下抓包工具代理请求后抓到的内容是加密状态,无法直接查看。但是,我们可以通过抓包工具来抓。它的原理其实是模拟一个中间人。...有人可能会问了,既然 HTTPS 不能防抓,那 HTTPS 有什么意义?...HTTPS 可以防止用户在不知情的情况下通信链路被监听,对于主动授信的抓操作是不提供防护的,因为这个场景用户是已经对风险知情。...要防止被抓,需要采用应用级的安全防护,例如采用私有的对称加密,同时做好移动端的防反编译加固,防止本地算法被破解。如何防止抓?对于HTTPS API接口,如何防止抓呢?...由于数字签名是使用私钥生成的,而私钥只掌握在我们手上,中间人无法伪造一个有效的签名,因此攻击失败,无法抓

51510

Python3还有哪些未Get的潜藏技能?

head, *body, tail = range(5) print(head, body, tail) # 0 [1, 2, 3] 4 py, filename, *cmds = "python3.7...script.py -n 5 -l 15".split() print(py) print(filename) print(cmds) # python3.7 # script.py # ['-n',...', level=2 隐式命名空间(3.3+) 构建 Python 代码有很多方法,其中一种就是在(packages)中进行构建(即包含一个 __init__.py 文件的文件夹)。...在 Python 2 中,上面的每个文件夹都必须有一个 __init__.py 文件,该文件用于将其所在文件夹转化为 Python 。...注:官方文档 PEP 420 Specification 指出,对于一些常规的,__init__.py 仍然是需要的 ,如果将该文件删除,就会把该 Python 变成一个本地的命名空间,这将会产生一些额外的限制

36120
领券