天天看點

python中如何解決類互相調用問題_兩個.py之間類的互相調用問題

本帖最後由 lightninng 于 2015-5-4 23:35 編輯

樓主,你這個問題涉及到的方面比較多,不僅僅是子產品調用和類相關的一些問題,給人的感覺是,自己想出來的一個方法,想驗證怎麼能得到正确的答案,

建議把你要解決問題的本身詳細的說一下,這樣别人好對症下藥

說一下幾個問題吧,

首先,你想在一個子產品中調用自己寫的另一個子產品,必須放下系統的PATH變量所包含的路徑下,否則直接 import 子產品名;這種調用方法将會報錯,找不到子產品名,當然也有别的解決方法見這個貼子http://bbs.fishc.com/thread-59410-2-1.html,28樓os子產品的介紹

再者,在将b子產品導入a中之後,相當于你導入了一些函數,那麼你在用b.add()調用b子產品中的add函數中的時候,我遇到的實際情況是會報錯:'module' object has no attribute 'add',我考慮可能是add()函數找不到a子產品所導緻的,将import a這條語句放在add函數中,得到了樓主所需要的答案,在列印值的時候遇到了一個問題,我在壇子裡發貼問問~

最後,想在函數中修改一個函數外定義的變量,應該在函數體的最開始将該變量聲明為全局變量,在這個問題裡就是在類中set()方法的最開始加上一條語句 :global value

另外 ,樓主要定義類的時候最好寫成這樣的形式NewClass(這是PEP 8的标準),類的執行個體最好命名成這個樣子a_class(同上)