from dataclasses import dataclass from typing import ClassVar, List """ Card data class to be autogenerated with class attributes, and data attributes. Includes autogenerated and explicitly defined methods and properties. """ @dataclass class Card: # Class attributes FACES: ClassVar[List[str]] = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King'] SUITS: ClassVar[List[str]] = ['Hearts', 'Diamonds', 'Clubs', 'Spades'] # Data attributes face: str suit: str # Explicitly defined method def __str__(self): """ @return the cards' string representation for str(). """ return f'{self.face} of {self.suit}' # Explicitly defined method def __format__(self, format): """ @return the card's formatted string representation. """ return f'{str(self):{format}}' # Explicitly defined property @property def image_name(self): """ @return the card's image file name. """ return str(self).replace(' ', '_') + '.png' ########################################################################## # (C) Copyright 2019 by Deitel & Associates, Inc. and # # Pearson Education, Inc. All Rights Reserved. # # # # DISCLAIMER: The authors and publisher of this book have used their # # best efforts in preparing the book. These efforts include the # # development, research, and testing of the theories and programs # # to determine their effectiveness. The authors and publisher make # # no warranty of any kind, expressed or implied, with regard to these # # programs or to the documentation contained in these books. The authors # # and publisher shall not be liable in any event for incidental or # # consequential damages in connection with, or arising out of, the # # furnishing, performance, or use of these programs. # ########################################################################## # Addtional material (c) 2024 by Ronald Mak