Advertisement
maxim_shlyahtin

5.2

Nov 7th, 2020 (edited)
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.80 KB | None | 0 0
  1. class Genre:
  2.     def __init__(self, genre):
  3.         self.genre = genre
  4.  
  5.     def __str__(self):
  6.         return f'{self.genre}'
  7.  
  8.  
  9. class Band:
  10.     def __init__(self, title):
  11.         self.title = title
  12.  
  13.     def __str__(self):
  14.         return f'{self.title}'
  15.  
  16.  
  17. class Song:
  18.     def __init__(self, name, genre, title):
  19.         self.genre = genre
  20.         self.title = title
  21.         self.name = name
  22.  
  23.     def get_g(self):
  24.         return self.genre
  25.  
  26.     def get_t(self):
  27.         return self.title
  28.  
  29.     def __str__(self):
  30.         return f'{self.name}'
  31.  
  32.  
  33. class Album:
  34.     def __init__(self, album, *name):
  35.         self.album = album
  36.         self.storage = list(name)
  37.  
  38.     def __getitem__(self, item):
  39.         return self.storage[item]
  40.  
  41.     def __str__(self):
  42.         a = [f'{self.storage[i]}' for i in range(len(self.storage))]
  43.         return f'ALBUM "{self.album}":\n' + '\n'.join(a) + '\n'
  44.  
  45.  
  46. class Subgenre(Genre):
  47.     def __init__(self, title, genre):
  48.         super().__init__(genre)
  49.         self.title = title
  50.  
  51.     def get_parent(self):
  52.         return self.genre
  53.  
  54.     def __str__(self):
  55.         return f'{self.title}'
  56.  
  57.  
  58. class Catalog:
  59.     def __init__(self, teg, *catalogue):
  60.         self.list = catalogue
  61.         self.teg = teg
  62.  
  63.     def __getitem__(self, item):
  64.         return self.list[item]
  65.  
  66.     def get_artist(self, other):
  67.         print(f'{other} ->')
  68.         for i in range(len(self.list)):
  69.             if str(self.list[i].get_t()) == str(other):
  70.                 print(f'{self.list[i]}')
  71.         return ''
  72.  
  73.     def get_genre(self, other):
  74.         print(f'{other} ->')
  75.         for i in range(len(self.list)):
  76.             if isinstance(self.list[i].get_g(), Subgenre):
  77.                 if str(self.list[i].get_g().get_parent()) == str(other):
  78.                     print(self.list[i])
  79.             else:
  80.                 if str(self.list[i].get_g()) == str(other):
  81.                     print(f'{self.list[i]}')
  82.         return ''
  83.  
  84.     def __str__(self):
  85.         a = [f'{self.list[i]}' for i in range(len(self.list))]
  86.         return f'CATALOG "{self.teg}" -> \n' + '\n'.join(a) + '\n'
  87.  
  88.  
  89. country, rok, rap, pop = Genre('country'), Genre('rok'), Genre('rap'), Genre('pop')
  90. vestern, hardrok = Subgenre('vestern', country), Subgenre('hardrok', rok)
  91. rammstein, beatles, L = Band('rammstein'), Band('beatles'), Band('L')
  92. song, song2, song3 = Song('Senschut', rok, rammstein), Song('Circles', rap, L), Song('Rammstein', hardrok, rammstein)
  93. s, s2, s3 = Song('Yesterday', vestern, beatles), Song('Yellow Submarine', rok, beatles), Song('Ultimate', rap, L)
  94. nice, good = Album('nice', song, song3), Album('good', s, s2)
  95. catalog = Catalog('GoodTaste', song, song2, song3, s3, s, s2)
  96. print(nice, good, sep='\n')
  97. print(catalog)
  98. print(catalog.get_artist(rammstein))
  99. print(catalog.get_genre(rok))
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement