看板 Python 關於我們 聯絡資訊
不知道你所說的改變 A.py中 AAAA的內容的意思是什麼 載入 A.py (import A) 之後可以改變namespace裡的A.AAAA的值 但是並不會改變A.py這個檔案的內容 不過依你的順序我執行起來是沒問題的 ---A.py--- AAAA=False def setA(): global AAAA AAAA=True def getA(): return AAAA class Test1(): def AisTrue(self): return getA() ---end--- ---B.py--- class Test2(): def changeA(self): import A A.setA() ---end--- ---main.py--- import A # 讀入 A.py import B # 讀入 B.py test1=A.Test1() # 產生一個Test1物件 test2=B.Test2() # 產生一個Test2物件 print "\n getA:", test1.AisTrue() # 執行test1的AisTrue() method: # 這邊會回傳False test2.changeA() # 執行test2的changeA() method: # A.AAAA 此時重設為 True print "\n getA:", test1.AisTrue() # 執行test1的AisTrue() method: # 此時回傳True ---end--- 執行結果: # python main.py getA: False getA: True ※ 引述《frankofranko (池上米)》之銘言: : 我是python的新手 : 很多觀念還不太懂.. : google不到又有點緊急只好來po文 : 希望能有人幫我解答QQ : 問題如下 : 兩個檔案有問題的部分大致如下 : A.py : global AAAAA : AAAAA = False : def setA(): : global AAAAA : AAAAA = True : def getA(): : global AAAAA : print"get A: ",AAAAA : class test(): : def A_True(): : getA() : B.py : class test2(): : def changeA(): : import A : A.setA() : 程式執行的順序為 : 1.先執行到A.py 有了一個test的物件 並且執行一次A_True() 印出False : 2.執行到B.py 有了一個test2的物件 並且執行一次changeA() : (期待在這邊把A.py裡的AAAAA變成True) : 3.又回來使用先前那個test的物件 這時候執行A_True 仍然印出False : 這是為什麼呢?? : 應該要怎麼改才會對呢? : 不好意思了這種問題好像很基本... : 謝謝大家!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.113.89 ※ 編輯: mantour 來自: 61.57.113.89 (06/25 09:46)
frankofranko:恩恩就是你說的這樣~ 06/25 11:34
frankofranko:可能是我拿來用的程式有點大 06/25 11:35
frankofranko:所以架構不只是我想得這樣 我這邊弄出來就都是False 06/25 11:36
frankofranko:不過我應該有辦法避免用這種方法寫了 06/25 11:36
frankofranko:謝謝!! 還幫我跑程式QQ 06/25 11:37
mantour:不客氣 希望你的問題有解決 06/25 16:02