2013-10-17 61 views
0

引用我是比較新的蟒蛇和空中接力,和我身邊的我的代碼設計的業餘愛好項目的問題。替代周邊的傳遞蟒蛇

我在我的主程序中創建了很多變量。這些變量是對象列表(不是配置參數而不是常量)。列表中的對象是精靈。

我身邊路過這些變量的對象之間,通過調用方法和周圍傳遞變量作爲自變量,具體的方法。 (通過按引用)

例如:

spritelist = [Sprite(...), Sprite(..)] 

mycollisiondetector = CollisionDetector() 

mycollisiondetector.check_collision(spritelist) 

然後,在類CollisionDetector,spritelist被傳遞給類的 「私有」 的方法。這些私有方法調用其他方法,並保持傳遞spritelist ...。

所以,我的問題就是這樣:有沒有無休止各地傳遞變量從一種方法到另一種替代?

+0

您可以請張貼一些代碼,以便我們可以幫助您。 –

+1

你的問題是非特定的,因此無法回答。什麼「從我的文件中刪除變量」甚至意味着什麼?程序如何在沒有變量的情況下工作?我會說:你想得很多。 – hop

+0

好吧,我不知道它是不是太pythonic,但你可以隨時保存一個文件中的很多變量,只是「導入」或「execfile」它。例如,我使用它來傳遞主程序不同的初始輸入或保留我經常使用的許多科學常量。 – Jblasco

回答

1

如果你處理的實例變量(未配置常量),它被認爲是不好的做法,這些變量分成模塊(不同的文件),因爲你是混合實例的狀態和全局狀態。

如果你已經被周圍經過反覆多次提到,這通常是利空類層次設計指標。您可能需要考慮子類化,或者爲您的變量定義一個新類並向其傳遞參考。細節將取決於您的具體情況 - 很難說沒有看到代碼。