首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否需要在其他模块中重新导入模块

是否需要在其他模块中重新导入模块
EN

Stack Overflow用户
提问于 2012-10-28 12:22:37
回答 1查看 185关注 0票数 3

正如标题所说,我需要在导入到主文件的模块中重新导入模块吗?在这上面找不到任何东西,也不确定要搜索什么。因为这是不起作用的,直到我在epicness中导入了其他史诗

file1:

代码语言:javascript
运行
AI代码解释
复制
import epicness
import otherepic

epicness.someother(3)

美食主义:

代码语言:javascript
运行
AI代码解释
复制
def someother(x):
    return dosomething(x)

另一部史诗:

代码语言:javascript
运行
AI代码解释
复制
def dosomething(x):
    return x*4
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 13:10:15

是的,您必须在每个模块中导入所需的所有内容。如果在module_a中使用在module_b中定义的函数B,则必须在module_a中导入module_b,或者至少从B导入module_b函数。

解释:

在Python中,模块就是对象!导入模块时,将执行其代码,并将在其中定义的所有内容附加到模块对象的__dict__

代码语言:javascript
运行
AI代码解释
复制
$ echo 'a=1' > testing.py
$ python
Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import testing
>>> 'a' in testing.__dict__
True

该模块的__dict__还包含常用的全局内置组件。在模块中定义的任何内容都使用模块的__dict__作为全局作用域。在python中,没有所谓的“全局变量”,即每个模块/类/函数都可以访问的变量。全局变量实际上只是模块的即时变量。

如果要将模块中的某些项导入到另一个模块的名称空间中,可以使用from语法:

代码语言:javascript
运行
AI代码解释
复制
from module_a import functionA, functionB, classA, CONSTANT

您可以使用*导入所有内容

代码语言:javascript
运行
AI代码解释
复制
from module_a import *

但是要避免使用from ... import *语法!你会得到命名空间冲突,就像C中的includes。只有当模块在其文档中声明它是*__-import安全时,才能这样做。要使模块导入__-*安全,您可以定义__all__全局变量,它应该是一个字符串序列,表示在执行*-import时应该导出的标识符。

例如:

代码语言:javascript
运行
AI代码解释
复制
#module_a
A = 1
B = 2
__all__ = ['A']

#module_b
from module_a import *
print(A)   #okay
print(B)   #NameError, B was not exported!
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13108758

复制
相关文章
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
该方法用于 导入完整的模块 , 包括模块中的 函数 / 变量 / 类 / 代码块 等 ;
韩曙亮
2023/10/11
2540
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
在导入模块时 , 有时不需要使用模块的完整功能 , 只需要导入指定的部分功能即可 , 这样也符合最少知识设计原则 ;
韩曙亮
2023/10/11
3550
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
【Python】模块导入 ① ( Python 模块简介 | 模块概念 | 模块作用 | 模块特点 | 常见的 Python 模块 | Python 模块导入 | Python 模块导入语法 )
Python 模块 就是一个以 .py 为后缀的 Python 代码文件 , 在模块中定义有 :
韩曙亮
2023/10/11
2830
一日一技:在 Jupyter 中如何自动重新导入特定的 模块?
Jupyter 是数据分析领域非常有名的开发环境,使用 Jupyter 写数据分析相关的代码会大大节约开发时间。
青南
2019/10/15
6.7K0
一日一技:在 Jupyter 中如何自动重新导入特定的 模块?
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
首先先准备两个模块,md_01_测试模块1和 md_02_测试模块2,然后在demo文件中导入模块并使用工具。
python自学网
2022/10/05
3.3K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
Python 导入模块中的类
在看代码时发现Python的导入类也可以用“.”的方式,很是惊奇,记录下来: 如以下代码:其所在文件(模块)为test.py
用户7886150
2020/12/24
2.3K0
重新整理django中Auth模块
一定要在settings.py中告诉Django,我现在使用我新定义的UserInfo表来做用户认证。写法如下:
小小咸鱼YwY
2019/09/12
1.1K0
python模块导入
[seemmo@RegionServer1 duwen]$ python Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
py3study
2020/01/14
1.5K0
python其他模块安装
可以到该网站:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载相关文件
py3study
2020/01/10
8090
模块的导入
假设有两个模块xmlreader.py和csvreader.py,它们都定义了函数read_data(filename):用来从文件中读取一些数据,但采用不同的输入格式。可以编写代码来选择性地挑选读取模块,例如
py3study
2020/01/21
1K0
Python 导入模块
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 导入模块 更多内容请见👇 Python 入门基础专栏 Python 字符串 Python 常用字符串方法 ---- Python 导入模块 1.import 模块名 2.import 模块名 as 名称缩写 3.import 模块名.子模块名 as 名称缩写 4.from 模块名 import 函
小嗷犬
2022/11/15
1.3K0
Python 重新加载模块
出于效率原因(导入必须找到文件,将其编译成字节码,并且运行代码),Python shell 在每次会话中,只对每个模块导入一次。
py3study
2020/01/03
4.5K0
pycharm导入自定义模块_模块导入速度python
Pycharm是很多Python开发者的首选IDE,如果能把一个工具熟练运用,往往有事半功倍的效果,各种快捷键、重构功能、调试技巧。由于Python是一门动态语言,对于自动导入包模块没有静态语言那么方便,但是我们有了Pycharm,还是可以很强大的。
全栈程序员站长
2022/09/27
1.4K0
pycharm导入自定义模块_模块导入速度python
python中关于模块导入的模式
举例:只想导入time模块中的ctime、time两个方法,可以按照以下的格式导入:
Java学术趴
2022/07/15
1.6K0
python中关于模块导入的模式
浅谈pipreqs组件(自动生成需要导入的模块信息)
简介 pipreqs的作用 一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个python第三方包的list,一般都叫做requirements.txt。 如果一个项目使用时virtualenv环境,还好办 pip freeze 就可以解决,但是如果一个项目的依赖list没有维护,而且又是环境混用,那就不好整理的呀,不过,这里安利一个工具 pipreqs,可以自动根据源码生成 requirements.txt . pip freeze命令 $ pip freeze > requirements
人生不如戏
2018/07/05
1.9K0
PyCharm导入本地模块
3.点击Existing environment这个选项,然后选择interpreter
全栈程序员站长
2022/09/25
2.1K0
PyCharm导入本地模块
Pycharm 中导入模块
以PyQt5为例 1、首先要在安装PyQt5。 在windows中以管理员身份打开CRM, 然后输入pip install pyqt5,安装好pyqt5后,还可以继续安装pyqt5的相关工具,命令pip install pyqt5-tools
全栈程序员站长
2022/09/27
6850
Pycharm 中导入模块
【Python】模块导入 ④ ( 自定义模块 | 制作自定义模块 | 使用 import / from 导入并使用自定义模块中的函数 | 导入自定义模块功能名称冲突问题 )
在另外的文件中 , 导入 my_module 模块 , 然后通过 my_module.add 调用 my_module 模块中的 add 函数 ;
韩曙亮
2023/10/11
7830
【Python】模块导入 ④ ( 自定义模块 | 制作自定义模块 | 使用 import / from 导入并使用自定义模块中的函数 | 导入自定义模块功能名称冲突问题 )
python 模块导入问题
在python中,模块导入和编码都是比较重要的,这两种东西一定要花时间弄清楚,如果摸棱两可,每次出问题都靠猜,那是非常痛苦的。
叶子陪你玩
2022/05/22
1.7K0
python 模块导入问题
1 - 导入python 模块
1. 导入python 模块的基本方式 2. 为导入的python 模块指定别名 import math from math import cos, tan from math import * print(math.sin(1.23)) print(cos(2.34)) print(tanh(1.23)) # 指定别名 as # 一旦指定了别名,原来的名字就不能用了 import math as mt print(mt.sin(2)) from math import cos as cs print
ruochen
2021/05/22
1.3K0
1 - 导入python 模块

相似问题

当外部模块已经导入到其他导入模块中时,是否必须重新导入它们?

20

动态导入需要其他模块的Python模块

12

导入需要其他包的模块

11

如何重新加载导入到其他模块中的模块

10

在导入python模块时,是否需要继续导入该模块?

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文