昨天我在遇到了一個BUG就是當我在建立一個叫mapRect的class的物件時,其他這個class的物件的座標都跟著被改變了,所以就去找問題在哪。
後來找到了,發現這問題有兩個部分(對我來說),首先我誤會了一點,當建立了class的物件後直接寫在class裡的程式並不會從頭在跑一次,而是直接複製class本人的來用,照理來說要建立class的物件自己的東西,要在函式中,用self.變數,這樣子來建立,所以我之前寫的程式中物件都是複製class來的,如果有想要一開始物件宣告就跑的,要寫在__init__()這個函式中。
然後第二個部分,為甚麼其他屬性沒事,就只有pos出事,因為pos是陣列,在程式中我使用了pos[0]=...這樣的寫法,如果是整個屬性=一個值,那使用後屬性指向的就不再是同樣的位置了,而是指向新的東西,但如果是改期忠一項值,那就是把大家都指向的東西給修改,所以大家的值都變了,就是這樣。
所以我把之前寫的那些class,建立自己的物件時的程式放到了__init__裡這樣。
今天的進度是這樣。