回答
如果你想使用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