Introdução
Bem-vindo ao fantástico Lago Mágico da Terra das Maravilhas (Wonderland), um lugar onde as águas não são apenas cristalinas, mas também imbuídas de propriedades místicas. Neste cenário extraordinário, você assume o papel de um Aquacultor místico do Lago da Terra das Maravilhas, encarregado de criar e gerenciar uma variedade de criaturas aquáticas mágicas que possuem habilidades e atributos únicos.
Seu objetivo é aproveitar o poder das classes e objetos Python para criar e gerenciar sua fazenda aquática de forma eficaz. Através deste Lab, você aprenderá como encapsular características e comportamentos de suas criaturas em classes Python, instanciar objetos dessas classes e gerenciar suas interações de maneira sistemática, simulando a vida aquática sob seus cuidados.
Este Lab foi projetado para ser convidativo e informativo, oferecendo uma abordagem prática para entender completamente os conceitos de classes e objetos Python. Prepare-se para mergulhar nas águas cristalinas e dar vida ao seu ecossistema virtual!
Projetando Suas Criaturas Aquáticas
Nesta etapa, você criará o projeto para suas criaturas aquáticas, projetando uma classe Python. Você definirá os atributos que todas as criaturas compartilham, como nome da espécie, poder especial e estado de saúde. Além disso, você implementará métodos que permitem que as criaturas interajam com seu ambiente.
class AquaticCreature:
def __init__(self, name, power):
self.name = name
self.power = power
self.health = 100
def display_info(self):
print("Creature Name:", self.name)
print("Special Power:", self.power)
print("Current Health:", self.health)
def take_damage(self, amount):
self.health -= amount
print(f"{self.name} has taken {amount} damage!")
## Example usage
creature = AquaticCreature("Gilly", "Water Whirl")
creature.display_info()
creature.take_damage(20)
Primeiro, abra um arquivo chamado ~/project/aquatic_creature.py usando seu editor favorito.
Copie a definição da classe acima e o exemplo de uso em aquatic_creature.py, salve o arquivo e execute-o usando Python:
python ~/project/aquatic_creature.py
O resultado esperado deve ser:
Creature Name: Gilly
Special Power: Water Whirl
Current Health: 100
Gilly has taken 20 damage!
Reproduzindo Novas Criaturas
Após definir sua classe AquaticCreature, você agora instanciará múltiplos objetos de criatura para povoar sua fazenda aquática.
Adicione o seguinte a aquatic_creature.py sob a definição da classe.
## Breeding new creatures
gilly = AquaticCreature("Gilly", "Water Whirl")
kelpie = AquaticCreature("Kelpie", "Seagrass Stealth")
nyxie = AquaticCreature("Nyxie", "Nighttime Glow")
## Display information about all creatures
for creature in [gilly, kelpie, nyxie]:
creature.display_info()
Execute o arquivo Python novamente:
python ~/project/aquatic_creature.py
O resultado esperado deve exibir informações sobre cada nova criatura instanciada:
Creature Name: Gilly
Special Power: Water Whirl
Current Health: 100
Gilly has taken 20 damage!
Creature Name: Gilly
Special Power: Water Whirl
Current Health: 100
Creature Name: Kelpie
Special Power: Seagrass Stealth
Current Health: 100
Creature Name: Nyxie
Special Power: Nighttime Glow
Current Health: 100
Resumo
Neste laboratório, você embarcou em uma aventura pelas águas mágicas do lago da Terra do Nunca, aprendendo as habilidades em Python relacionadas a classes e objetos. Começando com o design de uma classe para modelar suas criaturas, você encapsulou propriedades e métodos que permitiram interagir com essas entidades digitais. Em seguida, você passou a criar várias instâncias de AquaticCreatures, povoando assim sua fazenda aquática com vida.
O processo de design exigiu planejamento cuidadoso e pensamento em termos de princípios orientados a objetos (object-oriented principles), que servem como um conceito central em muitos empreendimentos de programação. Através da criação de scripts de verificação (checker scripts), você aprendeu a validar seu código e garantir que ele atenda aos resultados desejados. A satisfação de ver suas criaturas mágicas ganharem vida através do código deve ser uma experiência recompensadora, e o conhecimento adquirido aqui servirá como base para uma exploração mais aprofundada no poderoso mundo da programação Python.



