Implementação de conceitos orientados a objetos

Neste capítulo, vamos nos concentrar em padrões usando conceitos orientados a objetos e sua implementação em Python. Quando projetamos nossos programas em torno de blocos de instruções, que manipulam os dados em torno de funções, isso é chamado de programação orientada a procedimentos. Na programação orientada a objetos, existem duas instâncias principais chamadas classes e objetos.

Como implementar classes e variáveis ​​de objeto?

A implementação de classes e variáveis ​​de objeto são as seguintes -

class Robot:
   population = 0
   
   def __init__(self, name):
      self.name = name
      print("(Initializing {})".format(self.name))
      Robot.population += 1
   
   def die(self):
      print("{} is being destroyed!".format(self.name))
      Robot.population -= 1
      if Robot.population == 0:
         print("{} was the last one.".format(self.name))
      else:
         print("There are still {:d} robots working.".format(
            Robot.population))
   
   def say_hi(self):
      print("Greetings, my masters call me {}.".format(self.name))
   
   @classmethod
   def how_many(cls):
      print("We have {:d} robots.".format(cls.population))
droid1 = Robot("R2-D2")
droid1.say_hi()
Robot.how_many()

droid2 = Robot("C-3PO")
droid2.say_hi()
Robot.how_many()

print("\nRobots can do some work here.\n")

print("Robots have finished their work. So let's destroy them.")
droid1.die()
droid2.die()

Robot.how_many()

Resultado

O programa acima gera a seguinte saída -

Explicação

Esta ilustração ajuda a demonstrar a natureza das variáveis ​​de classe e objeto.

  • “População” pertence à classe “Robô”. Portanto, é referido como uma variável de classe ou objeto.

  • Aqui, nos referimos à variável de classe de população como Robot.population e não como self.population.