Untitled

mail@pastecode.io avatar
unknown
python
a month ago
1.9 kB
7
Indexable
Never
class Computador:
    sistema_operacional = 'Windows 10'

    # Métodos comuns
    def __init__(self, marca, memoria, placa_de_video, sistema_operacional):
        self.marca = marca
        self.memoria = memoria
        self.placa_de_video = placa_de_video
        self.sistema_operacional = sistema_operacional

    def exibir_dados_do_computador(self):
        print(f"Marca: {self.marca}\nMemória: {self.memoria}\nPlaca de video: {self.placa_de_video}\n"
              f"Sistema Operacional: {self.sistema_operacional}")

    # Métodos de Classe (Class Methods)
    # Configuração para cliente escritório
    @classmethod
    def computador_escritorio(cls, memoria):
        return cls('Dell', memoria, 'Placa de Vídeo - Baixo Custo', 'Windows 10')

    # Configuração para cliente de trabalho pesado (jogos, vídeo...)
    @classmethod
    def computador_configuracao_pesada(cls, memoria):
        return cls('Dell', memoria, 'Placa de Vídeo - Custo Medio', 'Windows 10')

    # Também é possível criar características flexíveis, sem a necessidade de criar várias instâncias
    @classmethod
    def computador_personalizado(cls, marca='Dell', memoria='8GB', placa_de_video='Placa de Vídeo - Baixo Custo',
                                 sistema_operacional='Windows 10'):
        return cls(marca, memoria, placa_de_video, sistema_operacional)

    # Métodos estáticos (Static Method). Não usam a instância da classe.
    @staticmethod
    def roda_programas_pesados(memoria):
        if memoria >= 8:
            return True
        else:
            return False


computador_personalizado = Computador.computador_personalizado(marca='HP', memoria='16GB',
                                                               placa_de_video='Placa de Vídeo - Custo Medio',
                                                               sistema_operacional='MacOS')
computador_personalizado.exibir_dados_do_computador()
Leave a Comment