導航:首頁 > 編程語言 > python重新導入模塊

python重新導入模塊

發布時間:2022-11-13 17:13:24

python中怎麼import自己寫的模塊

只需要在文件中import與你寫的文件的文件名一致的模塊名即可,這時Python會為你創建一個pyc文件的。
即,如果你已經寫了一個名為ssss.py的文件,而現在你需要在名為aaaa.py的文件中使用ssss.py中定義的方法,那麼你只需要在aaaa.py中加入import ssss,然後你就可以在aaaa.py中使用ssss.py中的方法(當然方法前需要加模塊名來引用)。你還可以在aaaa.py中如下寫
from ssss import ....
....可替換為ssss.py中定義的方法的名稱

from ssss import *
導入ssss.py中的所用定義,使用以上這兩種方法導入ssss.py中的定義,你在aaaa.py中可不用使用模塊名來引用。

㈡ python導入模塊的「最佳實踐」是什麼

通常,不要使用from molename import *。這樣做會使導入器的命名空間變得混亂,並且使得連接器更難以檢測未定義的名稱。

在文件的頂部導入模塊。這樣做可以清楚地了解代碼所需的其他模塊,並避免了模塊名稱是否在范圍內的問題。每行導入一個模塊可以輕松添加和刪除導入的模塊,但每行導入多個模塊會佔用更少的屏幕空間。

如果按以下順序導入模塊,這是一種很好的做法:

1.標准庫模塊 -- 例如:sys,os,getopt,re

2.第三方庫模塊(安裝在Python的site-packages目錄中的任何內容) -- 例如mx.DateTime,ZODB,PIL.Image等

3.本地開發的模塊

有時需要將模塊導入語句移動到函數或類裡面,以避免循環導入問題。Gordon McMillan 說:

當兩個模塊都使用 "import <mole>" 的導入形式時,循環導入就可以了。但是當第 2 個模塊想從第 1 個模塊中獲取一個名稱 ("from mole import name") 並且導入位於頂層時,就會出錯。 這是因為第 1 個模塊中的名稱還不可用,因為第 1 個模塊正在忙著導入第 2 個模塊。

在這種情況下,如果第二個模塊僅用於一個函數,則可以輕松地將模塊導入語句移動到該函數中。調用導入時,第一個模塊將完成初始化,第二個模塊可以進行導入。

如果某些模塊是特定於平台的,則可能還需要將模塊導入語句移出頂級代碼。在這種情況下,甚至可能無法導入文件頂部的所有模塊。在這種情況下,在相應的特定於平台的代碼中導入正確的模塊是一個很好的選擇。

只有當需要解決諸如避免循環導入或試圖減少模塊初始化時間的問題時,才可以將導入移動到本地范圍,例如在函數定義中。如果根據程序的執行方式,許多導入是不必要的,這種技術尤其有用。如果僅在某個函數中使用模塊,您還可能希望將導入移到該函數中。請注意,第一次載入模塊可能會因為模塊的一次初始化而代價高昂,但多次載入模塊實際上是免費的,只需進行幾次字典查找。即使模塊名稱超出了作用域,模塊也可能在 sys.moles 中可用。

㈢ python 導入全部模塊

通常的辦法是,你將所有的模塊都放到系統的lib目錄里。或者是放到sys的path變數里。 然後就可以import了。

你可以設置一個容器。在容器里,將所有需要的模塊都import完成。如果不知道哪些模塊,可以使用OS的WALK來遍歷。

把你的用戶代碼跑在容器里。這樣就不需要import所有的模塊了。 容器可以是自己寫的一個解釋器,比如象是ipython這樣子。也可以是一個WEB界面, 或者是一個服務,一個可以調用插件的運行模塊。

容器也可以是一個代碼框架。

㈣ 請問為什麼python3.7.3import導入模塊不成功

1、主要你是要當前使用的環境中是否已經安裝了對應的模塊。
2、檢查當前使用的環境是否為虛擬環境的,如果為虛擬環境,則之前在python路徑下安裝的模塊應該是不能使用的,所有還需要重新在虛擬環境中安裝對應的模塊。
3、在你展現的程序中呈現的是語法錯誤,然而並非是模塊導入錯誤,所以好好檢查你的程序出錯的地方。

㈤ python怎麼導入同一包的模塊

一、何為模塊

1.一個模塊就是一個包含了python定義和聲明的文件,文件名就是模塊名字加上.py的後綴。

2.模塊目的和函數,對象等一樣,是為了代碼的復用性而存在的。即一個py程序寫了很多功能,也可以被其他py程序調用。被調用後被作為模塊,此時會產生一個pyc的文件即為這個模塊的緩存文件,相當於編譯了模塊文件使該py模塊被調用的速度變快。一個大的項目一個人肯定是不行的,所以模塊也為程序員相互間的合作提供了便利。

二、模塊妙用

1.import

只需要在py程序開頭加上import 文件名(不能有.py後綴)。例如,模塊的文件名是span.py,那麼只需在自己的py程序加import span。

2. import可以在程序的任意位置調用,但一次調用後會駐留內存,下次再調用會直接調用內存中的模塊(python的優化)。

3.個模塊都是一個獨立的名稱空間,定義在這個模塊中的函數,把這個模塊的名稱空間當做全局名稱空間,這樣我們在編寫自己的模塊時,就不用擔心我們定義在自己模塊中全局變數會在被導入時,與使用者的全局變數沖突。

print('from the spam.py')

money=1000def read1(): print('spam->read1->money',1000)def read2(): print('spam->read2 calling read')
read1()def change(): global money
money=0

支持tab自動補全

㈥ python怎麼從別處導入模塊

肯定不能直接 import
一,最好放在統一的地方,目錄最好在python.exe的目錄下,因為python默認是搜索改目錄下的文件或者文件夾
二、盡量採用from ~~ import ~~方式,不要直接用import方式,具體原因樓主可以自己網路下原因,理解更深刻
三、當邏輯文件放的比較深的時候,需要__init__.py文件
四、如果文件不在python安裝目錄下,需要手動指定文件文件目錄,具體原因樓主可以自己網路下原因,理解更深刻

㈦ python 類和繼承,包及模塊導入 求解答

一 .mole

通常模塊為一個文件,直接使用import來導入就好了。可以作為mole的文件類型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。

二. package

通常包總是一個目錄,可以使用import導入包,或者from + import來導入包中的部分模塊。包目錄下為首的一個文件便是 __init__.py。然後是一些模塊文件和子目錄,假如子目錄中也有 __init__.py 那麼它就是這個包的子包了。

一.模塊你可以使用import語句將一個源代碼文件作為模塊導入.例如:

[python]view plain

㈧ Python導入模塊問題

因為import pygal並不會遞歸導入pygal下的子模塊。
import pygal這行語句實際上做的是:執行pygal目錄下的__init__.py文件。

㈨ 如何導入python中的模塊

定義模塊,只要使用文本編輯器,把一些python代碼輸入到文本中,然後以.py為後綴名進行保存,任何此類文件都會被認為是python模塊。
比如說,下面的代碼輸入到一個文件中,就可以看作是一個模塊:
def printme(var): print varif __name__ == '__main__': printme(1)

假設說輸入到a.py中,那麼import a就可以把這個模塊導入。
然後可執行a.printme(3),屏幕即可列印出3:
>>> a.printme(3)3>>>

一個模塊頂層定義的變數,會自動變成模塊的屬性。例如:
data=[1,2,3]def printme(var): print varif __name__ == '__main__': printme(1)

data變數就是模塊的一個屬性。其實printme也是一個屬性,只不過是一個函數罷了。
引入模塊示例如下:(假定此時data=[1,2,3]未定義)

>>> import a>>> a.data Traceback (most recent call last): File "<pyshell#1>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>> reload(a)<mole 'a' from 'C:/py\a.pyc'>>>> a.data Traceback (most recent call last): File "<pyshell#3>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>>

從上述提示可以看出data屬性未定義,此時再在a.py文件中定義data=[1,2,3],重新載入a模塊,並輸出data屬性:
>>> reload(a)<mole 'a' from 'C:/py\a.py'>>>> a.data[1, 2, 3]>>>

這里的reload函數可以重新載入一個模塊。如果在模塊代碼中更改了,那麼需要重新載入。
上面a.data,就是訪問模塊中的屬性。
上面的例子是導入一個文件作為一個模塊。
其實python的模塊導入還有更豐富的內容。
除了模塊名之外,python也可以導入指定目錄路徑。python代碼的目錄就稱為包。因此,這類導入就稱為包導入。事實上,包導入是把計算機上的目錄變成python的一個命名空間。而屬性就是目錄中包含的子目錄或者是模塊文件。
看下面例子:
在我的桌面上有一個aa文件夾,裡面有bb文件夾,bb裡面有a.py這個文件。
那麼在aa和bb文件夾中分別放置一個__init__.py,之後,在命令行中import aa.bb.a,就可以導入模塊a了。

㈩ 在python中導入模塊中的對象有哪幾種方式

1、導入整個模塊:
一般格式為:
import
模塊1[模塊2[,...]]
模塊名就是程序文件的前綴,不含.py,可一次導入多個模塊,導入模塊後,調用模塊中的函數或類時,需要以模塊名為前綴,這樣代碼讀起來更容易理解.
例:
>>>import
math
>>>math.sin(0.5)
0.4794255
2、與form聯用導入整個模塊:
一般格式為:
form
模塊名
import*
這種方式導入模塊後,調用模塊中的函數或類,僅使用函數名或類名,代碼簡潔,但可讀性差,不容易理解
例:
>>>form
math
import*
>>>cos(0.5)
0.8775825
3、與form聯用導入一個或多個對象:
一般格式為:
form
模塊名
import
對象1[,對象2[,對象...]]
這種方式只導入模塊中的一個或多個對象,調用模塊中的對象時,僅使用對象名(#與方法二類似)
例:
>>>form
math
import
sin,cos,exp
>>>sin(0.5)
0.4794255
>>>cos(0.5)
0.8775825
>>>exp(1)
2.7182818
(10)python重新導入模塊擴展閱讀
Python中常用模塊
math:模塊定義了標準的數學方法,如sin、cos
random:模塊提供了各種方法來產生隨機數
datetime:模塊中有日期時間處理方法
time:模塊中有時間、時鍾、計時相關的方法
tkinter:模塊提供了圖形界面開發的方法
參考資料:python
-
import

閱讀全文

與python重新導入模塊相關的資料

熱點內容
銀河v10驅動重編譯 瀏覽:889
電腦上文件夾右擊就會崩潰 瀏覽:689
右美維持演算法 瀏覽:938
php基礎編程教程pdf 瀏覽:219
穿越之命令與征服將軍 瀏覽:351
android廣播重復 瀏覽:832
像阿里雲一樣的伺服器 瀏覽:318
水冷空調有壓縮機嗎 瀏覽:478
訪問日本伺服器可以做什麼 瀏覽:433
bytejava詳解 瀏覽:448
androidjava7 瀏覽:385
伺服器在山洞裡為什麼還有油 瀏覽:886
天天基金app在哪裡下載 瀏覽:974
伺服器軟路由怎麼做 瀏覽:292
冰箱壓縮機出口 瀏覽:228
OPT最佳頁面置換演算法 瀏覽:645
網盤忘記解壓碼怎麼辦 瀏覽:853
文件加密看不到裡面的內容 瀏覽:654
程序員腦子里都想什麼 瀏覽:434
oppp手機信任app在哪裡設置 瀏覽:189