回答
如果你想使用b
从模块A
:
from A import b
如果你想将其重命名:
from A import b as my_b
如果您需要多个对象:
from A import b, c, d
如果你需要的一切:
from A import *
关于import *
选项,请阅读this post。 它很短,但是tl; dr:不要从模块中导入任何东西,只需要from A import *
。 如果你真的需要从模块,或者其内容的很大一部分的一切,喜欢正常的货物,可能与重命名:
import numpy as np
import tkinter as tk
我不会说你绝对不应该使用'from A import *'。只是在你这样做的时候你应该小心。例如,在Tk教程中向我推荐我使用'from tkinter import *;从tkinter导入ttk'为主题的小部件,因为'tk'和'ttk'很容易混淆。使用'tkinter'时,我几乎总是这样做。 (我只是没有把两个进口放在不同的生产线上,因为我不知道如何在评论中这样做)。 –
@IsaacSaffold这是相当真实的,但所需的护理是相当痛苦的。无论如何,我链接的这篇文章涵盖了比我更好的方式。 –
一旦你从'os import *'执行''并花费数小时调试,因为你的'open'调用不再工作了,你将永远不会再使用通配符导入。 – Matthias
由于A
是一个模块,你可以这样做:
from A import b
b()
这个问题已经回答了,但使用进口时需要注意的一件事是
from module import foo
和
import module
是绝对相同的,至于内存和性能有关。无论哪种情况,编译module
并将其加载到sys.modules
。唯一的区别是什么被带入你的名字空间。在第一种情况下,它是foo
。在第二种情况下,它是module
。
由于其他答案没有解释为什么使用from module import *
是坏的,这是什么原因:*
将导入一切到您的命名空间中直接使用。这不是一个好主意,除非你知道你在做什么。名称冲突绝对是可能的,特别是在导入多个大型模块时。
这可能是一个意见问题,但我相信import module
其次是module.foo()
更安全,并给读者一个关于该方法/属性的更好的想法,它来自哪里以及它在做什么。可读性很重要!
- 1. XmlDocument.SelectSingleNode省略前缀和命名空间
- 2. 前缀模块使用requirejs
- 3. 如何痛饮省略向前声明
- 4. 在XPATH(libxml2)中省略前缀会导致分段错误
- 5. 仅在对象名称jaxb中省略命名空间前缀
- 6. javax.xml.transform.Transformer忽略前缀?
- 7. 如何省略“控制器”。播放路线文件中的前缀?
- 8. 在JavaScript中省略'e +'后缀
- 9. 如何让JAXB unmarshaller忽略前缀?
- 10. 如何使sequelize.sync()省略某些模型?
- 11. 如何省略MenuItem?
- 12. 如何忽略某些模型的前缀? CakePHP
- 13. RegEx省略前导零
- 14. BigDecimal()省略前导零
- 15. 模块的节点路径前缀
- 16. Elixir无模块前缀函数?
- 17. idlj忽略“#pragma前缀”
- 18. 忽略XMLNS前缀的CSS
- 19. MVC忽略路由前缀
- 20. Win32com模块/ pythoncom模块的自省
- 21. 如何省略SunOS的
- 22. 使用前缀从模块导入而不暴露非前缀的东西
- 23. 省略包含通用字符名称的字符串文字的u8前缀
- 24. 存储和显示省,州,前缀的表单下拉数据的策略?
- 25. 带省略元素的CSS省略号?
- 26. CSS文本溢出前置省略号
- 27. 如何有条件地更换前缀或前缀/后缀GSUB
- 28. 如何让XElement.ToString()在自闭合斜杠前省略空格?
- 29. 如何读取省略前两行的excel文件
- 30. C++如何使用没有先前参数的省略号
您是否在尝试阅读[文档](http://docs.python.org)之前尝试过? – cat