Python: bir listenin değişken kapsamı ve kapsüllenmesi

Bir sınıf haritanım var (basitleştirilmiş):

from Enums import *
import Globals
import Tile

class Map:
    tiles = []  #the actual map, it's a 2D list of Tile objects
    for x in range(Globals.mapWidth):
        for y in range(Globals.mapHeight):
            self.tiles[x][y].addItem(Items.Foliage)

Ve bir sınıf Çini:

class Tile:
    items=[]
    def __init__(self, type):
        self.type = type

    def addItem(self,i):
        self.items.append(i)

Benim sorunum, Tile sınıfındaki öğeler [] dizisinin, sınıfın her girişimi içinde paylaşıldığı gibi görünmesi. Örneğin, FOR döngülerinin sonunda,     baskı (len (self.tiles [x] [y] .items) her karo için 25 dönüş. Neden böyle? Boyutu 1 olan 25 listeye sahip olmalıyım, bunun yerine döngüdeki liste boyutunu yazdırmak 0 ile 25 arasındadır. Birisi bana burada ne olacağını açıklayabilir mi? Yardım için çok teşekkürler :)

0

1 cevap

Öğeleriniz , bir sınıf niteliğidir. Bu nedenle, tüm örnekler arasında paylaşıldığı anlaşılıyor.

class Tile:
    def __init__(self, type):
        self.items = []
        self.type = type
2
katma
katma yazar John La Rooy, kaynak
@gramm: deneyin: my_list.index (x); ValueError dışında: handle_error()
katma yazar Sven Marnach, kaynak
Bu çalıştı, teşekkürler! Web sitesi bana izin verdiğinde cevabınızı kabul edeceğim
katma yazar gramm, kaynak
Buradayken söyle, list.index() bir hata döndürürse nasıl test edebilirim? Bunu Google'da bulamıyorum.
katma yazar gramm, kaynak