我有一個類玩家,這個類將有200-300個實例。這個類中有一個功能叫做移動,這個功能需要知道地圖。Python:從類實例中訪問變量的最佳方法?
我也有一個類地圖與1-2個實例。提供地圖到玩家實例的最佳方式是什麼?
我只問,因爲如果我將其提供給玩家時的例如初始化,所以我可以訪問通過self.map實例 - 不就是爲每個實例創建數百地圖實例的副本(一個播放器)?
對於我所知道的這可能是這樣做的標準方式,但我有一個嘮叨的感覺,這是不適當的。
感謝
我有一個類玩家,這個類將有200-300個實例。這個類中有一個功能叫做移動,這個功能需要知道地圖。Python:從類實例中訪問變量的最佳方法?
我也有一個類地圖與1-2個實例。提供地圖到玩家實例的最佳方式是什麼?
我只問,因爲如果我將其提供給玩家時的例如初始化,所以我可以訪問通過self.map實例 - 不就是爲每個實例創建數百地圖實例的副本(一個播放器)?
對於我所知道的這可能是這樣做的標準方式,但我有一個嘮叨的感覺,這是不適當的。
感謝
如果你通過了Map
到Player
在Init這只是傳遞一個參考,而不是一個副本。您不會通過這種方式創建Map
的冗餘實例,並且這是實現它的最佳方式。
Python中的任何內容都不會被隱式複製。無論何時你做x = y
,無論是函數調用還是變量/元素/屬性分配,x
和y
之後都會引用同一個對象。
我看到兩個缺陷與你的計劃,但:
move()
即可。
地圖上的東西可以詢問或告訴地圖來移動它。 – martineau 2011-05-28 09:36:04