#python #class
#питон #класс
Вопрос:
У меня есть следующая настройка класса:
SUITS = ["D", "C", "H", "S"]
class CardDeck:
#creates a pack of cards (no jokers)
def __init__(self):
self.cards = []
for s in SUITS:
for x in range(1, 14):
self.cards.append(s str(x))
#sets as as high if True
def aceHigh(self, bool):
if bool == True:
for s in SUITS:
self.cards.remove(s "1")
self.cards.insert(12, s "14")
elif bool == False:
print('Ace not high')
Когда я затем делаю следующее, я, кажется, получаю те же результаты. Всегда ли эти два способа вызова / доступа к методам / классам эквивалентны? Является ли один из них лучше другого по какой-либо причине (в частности, прав ли я, считая первый подход рекурсивным)? Спасибо
x = CardDeck()
y = CardDeck()
CardDeck.aceHigh(x, True)
y.aceHigh(True)
print(x.cards)
print(y.cards)
Комментарии:
1. Нет, первый подход не имеет ничего общего с рекурсией. Второй подход предпочтительнее, поскольку сразу видно, с каким
CardDeck
экземпляром вы на самом деле имеете дело.2. Нет, не делайте этого :
CardDeck.aceHigh(x, True)
. Это не имеет ничего общего с рекурсией.