Construtores Python para Artefatos Imperiais

PythonBeginner
Pratique Agora

Introdução

No coração dos majestosos palácios da dinastia Ming, um eunuco diligente embarca numa missão crucial para documentar e gerenciar o vasto inventário de tesouros imperiais. Em meio à grandiosidade dos antigos salões e câmaras opulentas, nosso protagonista, detentor do título de "Guardião de Artefatos", deve aplicar a máxima precisão e cuidado. Usando a poderosa e versátil ferramenta da linguagem Python, ele deve manter um registro meticuloso.

Seu objetivo é auxiliar nosso fiel eunuco a dominar o conceito de construtores em Python - essencial para encapsular as propriedades de cada artefato único e automatizar o processo com estruturas baseadas em classes. Neste cenário imersivo, você aprenderá como definir e utilizar construtores, aprimorando suas habilidades para lidar com dados com elegante eficiência – um esforço digno da reputação da corte imperial!

Classe Python com Construtor

Nesta etapa, você criará uma classe Python que representa um artefato na coleção do palácio. Você definirá um construtor para inicializar seus atributos, como nome, idade e origem.

Por favor, abra um arquivo Python chamado artifact.py no diretório ~/project com o seguinte conteúdo:

class Artifact:
    def __init__(self, name, age, origin):
        self.name = name
        self.age = age
        self.origin = origin

## Example usage
if __name__ == "__main__":
    jade_vase = Artifact("Jade Vase", 150, "China")
    print(f"Artifact: {jade_vase.name}, Age: {jade_vase.age}, Origin: {jade_vase.origin}")

A classe Artifact possui um método __init__, que é um construtor em Python. Ele é chamado automaticamente quando você cria uma nova instância da classe. O parâmetro self se refere à instância atual da classe e é usado para acessar variáveis que pertencem à classe.

Execute o script Python executando o seguinte comando no terminal:

python ~/project/artifact.py

Você deve ver a saída:

Artifact: Jade Vase, Age: 150, Origin: China

Adicionando Métodos ao Artefato

Agora, vamos aprimorar a classe Artifact adicionando métodos que permitem ao eunuco exibir e atualizar as informações do artefato. Você criará um método para imprimir os detalhes do artefato e outro para atualizar sua idade.

Modifique o arquivo artifact.py para incluir os novos métodos:

class Artifact:
    def __init__(self, name, age, origin):
        self.name = name
        self.age = age
        self.origin = origin

    def display_info(self):
        print(f"Artifact: {self.name}, Age: {self.age}, Origin: {self.origin}")

    def update_age(self, new_age):
        if new_age >= 0:
            self.age = new_age
        else:
            print("Invalid age. Please enter a positive number.")

## Example usage
if __name__ == "__main__":
    jade_vase = Artifact("Jade Vase", 150, "China")
    jade_vase.display_info()
    jade_vase.update_age(160)
    jade_vase.display_info()

O método display_info imprime os detalhes de um artefato. O método update_age permite atualizar o atributo idade, garantindo que apenas números válidos e positivos sejam definidos.

Execute o script Python atualizado executando o comando correspondente no terminal novamente e observe a saída.

As informações abaixo devem ser exibidas no seu terminal:

Artifact: Jade Vase, Age: 150, Origin: China
Artifact: Jade Vase, Age: 160, Origin: China

Resumo

Neste laboratório, você teve uma experiência interativa pelos antigos palácios da dinastia Ming, onde ajudou nosso personagem a documentar artefatos usando construtores Python. O foco principal foi entender o conceito de construtores em Python e como manipular atributos de classe por meio de métodos.

Desde a criação de uma classe e seu construtor até a adição de métodos funcionais, você adquiriu experiência prática. Você aprendeu como instanciar objetos, inicializar seus atributos e manipular dados de objetos com métodos definidos pela classe - um conjunto de habilidades fundamentais para qualquer desenvolvedor Python.

Esperamos que você tenha compreendido a ideia básica dos construtores Python e como eles podem ser ferramentas poderosas para encapsulamento de dados e programação orientada a objetos. Agora, você pode seguir em frente e enfrentar desafios de programação ainda mais complexos com a confiança de um Guardião de Artefatos da corte imperial!