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