摘要:記錄前段時間學習時遇到的循環導入問題何為循環導入栗子很簡單現在有三個包中導入中導入中導入然后隨便以一個文件為入口執行程序假如以作為程序入口大概就像下面這樣現在執行就會報出導入錯誤類似下面這個詳細介紹在核心編程中有介紹有時間可以看一下重點是
記錄前段時間學習 Flask 時遇到的循環導入問題
何為循環導入?栗子很簡單, 現在有a.py, b.py, c.py 三個包, b.py 中導入 a.py, c.py 中導入 b.py , a.py 中導入c.py, 然后隨便以一個文件為入口執行程序
假如以 a.py 作為程序入口, 大概就像下面這樣
import c def test(): print("this a") c.test()
現在執行a.py 就會報出導入錯誤(類似下面這個), 詳細介紹在 core-python (python 核心編程) 中有介紹, 有時間可以看一下
ImportError: cannot import name XX重點是, 怎么解決
(直接最實在的方法) 將產生循環的包, 放在函數里進行調用, 比如剛才的 a.py 可以改成這樣
def test(): print("this a") def run(): import c c.test()
如果了解程序的執行順序的話, 也可以使用調整 import 順序的方法解決, 但是我嘗試的結果是: 這并不能100% 的解決問題
(終極解決方案) 要不還是重構吧 (逃..)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45528.html
摘要:類之間的循環依賴代碼大致是這樣的這樣,依賴,依賴,又會回到,這樣肯定就是錯誤的了。因為在引用的時候,會回到查找引用的,但是這個時候的構建還沒有完成,就會導入錯誤。也就是使用字符串表示模塊,而不進行導入了。 最近使用Python + Django,是一個巨復雜的系統,才幾天就40多張數據庫的表了。因為在Django里面,表都使用類來實現的,所以就要一開始寫很多的class,語法都沒問題,...
摘要:假設我們需要在程序中計算一些數字的平方根。此外如果我們需要在程序中多次使用平方根函數,代碼將會更整潔。然而在這個虛構的例子中,只有的年齡超過歲。然后檢查這三個人的年齡是否滿足第二個條件。 作者:?Christopher Tao翻譯:王可汗校對:王雨桐本文約1800字,建議閱讀5分鐘本文...
摘要:如為,小數點后兩位是,存在四舍五入。在中,有一個小坑,就是并不是真正的四舍五入如圖而可以這樣的總結為在奇數的時候,是四舍五入,在偶數的時候是五舍六入函數執行后輸出的提示返回的是數據類型是,所以有時需要進行類型轉換,這樣的函數。 Python語言的概述 Pyhthon 是 蟒蛇的意思。python語言的擁有者是 Python Software Foundation(PSF)RSF是一個非...
摘要:是可視化工具中最棒的,但是,在處理視圖的導入導出方面,它是按照視圖名稱的字母順序來處理的,若視圖存在依賴,在導入過程中就會報錯。 navicat是mysql可視化工具中最棒的,但是,在處理視圖的導入導出方面,它是按照視圖名稱的字母順序來處理的,若視圖存在依賴,在導入過程中就會報錯。這個問題一直困繞我,一度因為我使用docker來部署mysql而繞過了這個問題。最近不得不直面這個問題,因...
閱讀 3364·2021-11-11 16:54
閱讀 3523·2021-10-11 10:58
閱讀 1262·2021-08-30 09:41
閱讀 1808·2019-08-30 15:54
閱讀 2032·2019-08-30 14:00
閱讀 2706·2019-08-29 17:13
閱讀 1672·2019-08-29 15:19
閱讀 613·2019-08-29 15:14