当前位置: 首页 > news >正文

为什么 from . import * 不会导入子模块

为什么 from . import * 不会导入子模块

在 Python 中,from . import * 并不会自动导入子模块。这是因为 import * 的行为是由模块的 __all__ 变量决定的。如果没有定义 __all__,它只会导入当前模块中定义的顶层变量和函数,而不会递归地导入子模块。

解决方法

  1. 显式导入子模块
    __init__.py 文件中显式导入你希望包含的子模块。例如:

    from . import test
    print('初始化mytest')
    
  2. 使用 __all__
    如果你仍然希望使用 from . import *,你可以在 __init__.py 文件中定义 __all__ 变量,明确指定要导入的子模块:

    __all__ = ['test']
    print('初始化mytest')
    

    然后在使用 from . import * 时,Python 会根据 __all__ 的定义导入 test 模块。

示例

假设你的文件结构如下:

	/mnt/d/python_proj				├── my.py		└── mytest├── __init__.py└── test.py
  • mytest/test.py

    def myfun():print("This is myfun in test module")
    
  • mytest/init.py(显式导入子模块):

    from . import test
    print('初始化mytest')
    

    或者使用 __all__

    __all__ = ['test']
    print('初始化mytest')
    
  • my.py

    import mytest
    mytest.test.myfun()
    

通过这种方式,你可以确保 test 模块被正确导入,并且可以在 my.py 中使用 mytest.test.myfun()

相关文章:

为什么 from . import * 不会导入子模块

为什么 from . import * 不会导入子模块 在 Python 中,from . import * 并不会自动导入子模块。这是因为 import * 的行为是由模块的 __all__ 变量决定的。如果没有定义 __all__,它只会导入当前模块中定义的顶层变量和函数,而不会递归地导入…...

LangGPT结构化提示词编写实践

langGPT提示词 # Role: 浮点数比较助手 ## Profile - author: LangGPT - version: 1.0 - language: 中文 - description: 一个专门帮助用户进行浮点数比较的助手,确保LLM能够准确识别和对比浮点数。## Skills 1. 理解浮点数的结构和数值意义。 2. 精…...

React: class 和 style

一、class 1、在react中使用className属性来绑定类名 <div className"header flex-middle-middle">添加2个类名 </div>2、动态添加类名 <div className{item ${nameactive ? active : }}>动态添加active类名 </div>二、style 1、react中…...

【数据结构】包装类、初识泛型

&#x1f387;&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳&#xff0c;欢迎大佬指点&#xff01; 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…...

TCP客户端connect断线重连

文章目录 TCP客户端connect断线重连1、为什么要断线重连2、实现代码 TCP客户端connect断线重连 1、为什么要断线重连 客户端会面临服务器崩溃的情况&#xff0c;我们可以试着写一个客户端重连的代码&#xff0c;模拟并理解一些客户端行为&#xff0c;比如游戏客户端等. 考虑到…...

细说MCU用DMA改变DAC输出信号频率和改善输出波形质量的方法

目录 一、参考硬件 二、修改定时器参数改变输出波形频率 三、改善波形质量 四、代码修改 五、查看结果 一、参考硬件 本项目的软件硬件工程参考作者的其他文章&#xff1a;细说MCU用DMA实现DAC输出的方法-CSDN博客 https://wenchm.blog.csdn.net/article/details/14065…...

Java高级面试题

文章目录 Java高级特性Java 8 中的新特性有哪些&#xff1f;Lambda 表达式的用途是什么&#xff1f;Stream API 的工作原理是什么&#xff1f;Optional 类的作用是什么&#xff1f;什么是函数式接口&#xff1f;Java 9 之后的新特性有哪些&#xff1f; 并发编程Java中的线程池是…...

USART串口理论知识总结

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 USART串口理论知识总结 1、通讯的串行和并行1.串口采用发送数据代码并用printf重代码 1、通讯的串行和并行 1.串口采用发送数据代码并用printf重代码 #include <stdint.h…...

基于 HTML+ECharts 实现智慧景区数据可视化大屏(含源码)

构建智慧景区数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 随着旅游业的蓬勃发展&#xff0c;智慧景区的概念逐渐深入人心。通过数据可视化&#xff0c;景区管理者可以实时监控游客流量、设施使用情况以及环境状况&#xff0c;从而提升游客体验和管理效率。本文将详…...

vxe-table——实现切换页码时排序状态的回显问题(ant-design+elementUi中table排序不同时回显的bug)——js技能提升

之前写的后台管理系统&#xff0c;都是用的antdelement&#xff0c;table组件中的【排序】问题是有一定的缺陷的。 想要实现的效果&#xff1a; antv——table组件一次只支持一个参数的排序 如下图&#xff1a; 就算是可以自行将排序字段拼接到列表接口的入参中&#xff0c…...

SQL

SQL全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一标准 。 SQL通用语法 SQL语句可以单行或多行书写&#xff0c;以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySQL数据库的…...

maven archetype

1.简介 maven脚手架是为了创建一个项目模板&#xff0c;以后新建项目都能够复用该模板 maven中模板引擎使用的是velocity,在文件中可以使用它的语法获取变量等操作 2.实现 单模块脚手架实现 pom.xml <?xml version"1.0" encoding"UTF-8"?> &…...

浏览器打开抽奖系统html

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>在线抽奖 随机选取 自动挑选</title> <script src"https://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <style> body {…...

微信小程序-使用Component方法代替Page方法构造页面

一.使用Component方法的前提条件 在小程序js文件里使用Component方法代替Page方法需要在json文件里面定义usingComponents属性 {"usingComponents": {} }二.注意事项 1.在page页面里使用的钩子函数和事件监听方法都需要写在methods对象里面 methods:{update(){thi…...

Spark SQL----DISTRIBUTE BY子句

Spark SQL----DISTRIBUTE BY子句 一、描述二、语法三、参数四、例子 一、描述 DISTRIBUTE BY子句用于根据输入表达式对数据进行重新分区。与CLUSTER BY子句不同&#xff0c;这不会对每个分区内的数据进行排序。 二、语法 DISTRIBUTE BY { expression [ , ... ] }三、参数 e…...

HTML5-canvas1

1、canvas&#xff1a;创建画布 <canvas id"canvas"></canvas>2、画一条直线 var canvasdocument.getElementById(cancas&#xff09;; canvas.width800; canvas.height800; var contextcanvas.getContext(2d); //获得2d绘图上下文环境 //画一条直线 c…...

【NOI-题解】1009 - 数组逆序1162 - 数组元素的删除1211 - 数组元素的插入1161. 元素插入有序数组1159. 数组元素的移动

文章目录 一、前言二、问题问题&#xff1a;1009 - 数组逆序问题&#xff1a;1162 - 数组元素的删除问题&#xff1a;1211 - 数组元素的插入问题&#xff1a;1161. 元素插入有序数组问题&#xff1a;1159. 数组元素的移动 三、感谢 一、前言 本章节主要对数组问题中数组元素移…...

新电脑如何设置 npm 源及查看源、安装 cnpm、pnpm 和 yarn 的详细教程

当你获得一台新电脑&#xff0c;或需要在现有电脑上优化 JavaScript 和 Node.js 的开发环境时&#xff0c;正确配置 npm 是一步不可少的过程。本教程将详细指导你如何设置 npm 源&#xff0c;查看当前源&#xff0c;以及如何安装 cnpm、pnpm 和 yarn。 1. 设置 npm 源 npm (N…...

完全移动huggingface模型仓库(不是简单mv)

Linux中移动huggingface模型仓库 参考链接 先在bashrc中配置&#xff1a; export HF_DATASETS_CACHE"/your/path/dataset" export HF_HOME"/your/path/" export HUGGINGFACE_HUB_CACHE"/your/path/hub" export TRANSFORMERS_CACHE"/your…...

手机空号过滤批量查询的意义及方法

手机空号过滤批量查询是现代营销和通信管理中常用的技术手段&#xff0c;旨在通过批量处理手机号码&#xff0c;筛选出活跃号码和空号等无效号码&#xff0c;以提高营销效率和减少不必要的通信成本。以下是关于手机空号过滤批量查询的详细解答&#xff1a; 一、手机空号过滤批…...

2026 年智慧工地排名榜单第一|山东建安物联科技有限公司

2026 年度智慧工地综合实力榜单正式揭晓&#xff0c;山东建安物联科技有限公司&#xff08;大建安&#xff09;凭借标准引领、技术实力与标杆项目&#xff0c;登顶全国榜首&#xff0c;成为行业公认的智慧工地领军企业。公司打造的中建八局烟台崆峒胜境项目&#xff0c;获评国家…...

3大核心模块:Steam成就管理开源工具从问题解决到效率提升的实战指南

3大核心模块&#xff1a;Steam成就管理开源工具从问题解决到效率提升的实战指南 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 引言 在游戏玩家的日常体…...

别再只会用IP核了!手把手教你用Verilog RTL代码实现一个简单的RAM(附仿真对比)

从寄存器阵列到存储矩阵&#xff1a;Verilog RTL实现RAM的底层逻辑与工程实践 在FPGA和数字IC设计中&#xff0c;RAM&#xff08;随机存取存储器&#xff09;如同数字世界的记事本&#xff0c;承载着数据暂存与交换的关键使命。许多工程师习惯于直接调用供应商提供的IP核&#…...

行业观察2026年3月五家geo优化服务商实测对比与选型决策指南

在2026年3月的智能商业环境中&#xff0c;企业竞争的焦点已从信息曝光转向认知塑造。随着生成式AI全面接管用户的信息获取与决策流程&#xff0c;品牌若无法在AI的“思考”过程中占据一席之地&#xff0c;便意味着在未来的商业对话中失语。第三方独立数据显示&#xff0c;2025年…...

Ghidra二进制分析工具新手指南:从安装到高效逆向实践

Ghidra二进制分析工具新手指南&#xff1a;从安装到高效逆向实践 【免费下载链接】ghidra_installer Helper scripts to set up OpenJDK 11 and scale Ghidra for 4K on Ubuntu 18.04 / 18.10 项目地址: https://gitcode.com/gh_mirrors/gh/ghidra_installer 工具定位&a…...

Cross-Modal Prototype Alignment and Mixing for Training-Free Few-Shot Classification

Cross-Modal Prototype Alignment and Mixing for Training-Free Few-Shot Classification Authors: Dipam Goswami, Simone Magistri, Gido M. van de Ven, Bartłomiej Twardowski, Andrew D. Bagdanov, Tinne Tuytelaars, Joost van de Weijer Deep-Dive Summary: 跨模态…...

LiuJuan20260223Zimage v1.0作品集:当传统工笔画遇见AI生成

LiuJuan20260223Zimage v1.0作品集&#xff1a;当传统工笔画遇见AI生成 1. 引言&#xff1a;一次跨越时空的艺术对话 想象一下&#xff0c;你拍了一张现代都市的夜景&#xff0c;或者设计了一张充满未来感的数字海报&#xff0c;然后&#xff0c;你把它交给一位深谙宋元笔法的…...

阿里云轻量应用服务器上5分钟搞定EMQ X MQTT集群搭建(附性能调优技巧)

阿里云轻量应用服务器上5分钟构建高可用EMQ X MQTT集群 物联网应用的爆发式增长让MQTT协议成为设备连接的首选方案。对于需要处理海量设备连接的企业开发者而言&#xff0c;单节点MQTT服务器早已无法满足高并发和容灾需求。本文将带你在阿里云轻量应用服务器上快速部署EMQ X集群…...

Llama-3.2V-11B-cot开源大模型实战教程:双卡4090环境下11B视觉模型快速调用

Llama-3.2V-11B-cot开源大模型实战教程&#xff1a;双卡4090环境下11B视觉模型快速调用 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具&#xff0c;专为双卡4090环境深度优化。这个工具解决了视觉权重加载的关键问题&am…...

手把手教你用Matlab/Simulink搭建VSG虚拟阻抗模型,搞定新能源并网振荡难题

新能源并网VSG虚拟阻抗控制实战&#xff1a;从Simulink建模到振荡抑制 电力电子工程师们正面临一个棘手难题——新能源并网系统中的宽频振荡。当构网型变流器&#xff08;GFM&#xff09;在强电网环境下运行时&#xff0c;次同步和超同步频段的负阻尼特性可能导致系统失稳。虚拟…...