Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Imprimindo os atributos e seus valores

class Musica:
  def __init__(own, s_name, s_artist, s_genre, i_length):
    own.nome = s_name # str
    own.artista = s_artist # str
    own.genero_musical = s_genre # str
    own.duracao = i_length  # int (segundos)
    
''' Essa função usa "dir()" para buscar todos os atributos do objeto, usa "startswith("__")" para ignorar os atributos especiais e "getattr()" para imprimir os valores dos atributos de interesse.
'''    
def print_song(song):
  for attribute in dir(song):
    if not attribute.startswith('__'):  # Ignora os __atributos-especiais__
      attribute_value = getattr(song, attribute)  # Pega os valores dos atributos 
      
      # Imprime com os valores alinhados
      print(f'{attribute}:{' ' * (16 - len(attribute))} {attribute_value}')
  print() # pula só para separar uma música da outra
  
# Cria instâncias de objeto da classe "Musica" e inicializa seus atributos
song_1 = Musica('Prety Woman', 'Roy Orbison', 'Pop rock', 175)  
song_2 = Musica('High Steppin\' Hip Dressin\' Fella', 'Love Unlimited Orchestra', '80\'s Disco Dancing', 329)  
song_3 = Musica('Under Pressure', 'Queen', 'Pop rock', 248)  

print_song(song_1)
print_song(song_2)
print_song(song_3)
1 resposta
solução!

Oi, Eduardo! Como vai?

Gostei de como você usou a função dir() para acessar dinamicamente os atributos e o uso de getattr() para imprimir os valores. Isso mostra um ótimo domínio sobre introspecção em Python.

Abraços e bons estudos!