2016-04-25 4 views
1

Я делал подземелья и драконы тематической игры на питоне и использовал классы для игрока и карт.Класс не имеет атрибута, хотя установлен

Но при попытке получить массив из класса карты он сообщает мне, что нет атрибута, названного этим, но он определенно был установлен.

Heres класс карта

class Map_1: 

    def __init__ (self): 
     self.Title = "Default" 
     self.Spawn = [4, 2] 
     self.map = [...] 

я затем, чтобы попытаться использовать этот

Map = Map_1 
current_pos = Map.Spawn 

Теперь, как правило, это будет встроен в другой класс, но я попытался увидеть, если он был классы сталкиваясь вынимая его и запуская без класса, и я все равно получаю сообщение об ошибке. Это моя ошибка

class Map_1 has no attribute 'Spawn' 
+1

Вы устанавливаете атрибут экземпляра, а не атрибут класса. –

ответ

1

Чтобы уточнить ответ Мартейна, вы упускаете '()' после 'Map_1'. Когда вы говорите

Map = Map_1 

, который должен быть:

Map = Map_1() 
+1

Спасибо, ваш ответ легче понять, если вы не совсем поняли терминологию – Ashmoreinc

3

Ваш класс не имеет такого атрибута нет. Только экземпляров класса будет иметь этот атрибут, но вы его никогда не создадите.

Создание экземпляра с помощью вызывающих класса:

Map = Map_1() # call the class 
current_pos = Map.Spawn 
+0

Черт, спасибо, я выгляжу как такой новичок. Но, по крайней мере, это напоминание, чтобы внимательно изучить синтаксис, спасибо еще раз. – Ashmoreinc

Смежные вопросы