Я довольно новичок в Python и, пытаясь учиться, я решил написать код проекта, который включает в себя создание колоды карт (это блэкджек, я думаю, многие люди делают это во время обучения). Проще говоря, код рекурсивно делает все карты на основе определенного класса карт.
Однако, когда я хочу вызвать список и проверить, что карты действительно в правильном порядке (вызывая случайный элемент ивызывая метод описания) я получаю ошибку.
class Card():
def __init__(self,value,suit):
self.value = value
self.suit = suit
def description(self):
return f"{self.value} of {self.suit}"
values = ["ace", 2,3,4,5,6,7,8,9,10,"jack","queen","king"]
colors = ["Hearts","Diamonds","Spades","Clubs"]
deck = [card(value,color) for value in values for color in colors]
deck[3].description()
Я ожидаю получить описание четвертого экземпляра созданных карт. Тем не менее, я получаю следующую ошибку:
<ipython-input-56-567b42634c58> in <module>
12 c = Card("ace","Spades")
13 c.description()
---> 14 deck[3].description()
AttributeError: 'card' object has no attribute 'description'
Я не знаю, почему возникает ошибка, код создает экземпляры класса, поэтому я ожидал, что смогу вызвать метод / атрибут (на самом деле этоговорит. описание является атрибутом, но разве это не метод? Я не совсем понимаю разницу ...)
Я не смог найти кого-то с подобной проблемой, и поиск этой ошибки в целом неМне тоже не поможет. Если есть подобный вопрос, извините за избыточность! Есть ли простая ошибка, которую я делаю? Любой комментарий будет принята с благодарностью. Заранее спасибо!