Implementierung objektorientierter Konzepte

In diesem Kapitel konzentrieren wir uns auf Muster mit objektorientierten Konzepten und deren Implementierung in Python. Wenn wir unsere Programme um Anweisungsblöcke herum entwerfen, die die Daten um Funktionen herum manipulieren, spricht man von prozedurorientierter Programmierung. In der objektorientierten Programmierung gibt es zwei Hauptinstanzen, die als Klassen und Objekte bezeichnet werden.

Wie implementiere ich Klassen und Objektvariablen?

Die Implementierung von Klassen und Objektvariablen ist wie folgt:

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()

Ausgabe

Das obige Programm erzeugt die folgende Ausgabe -

Erläuterung

Diese Abbildung zeigt die Art der Klassen- und Objektvariablen.

  • "Bevölkerung" gehört zur Klasse "Roboter". Daher wird es als Klassenvariable oder Objekt bezeichnet.

  • Hier bezeichnen wir die Populationsklassenvariable als Robot.population und nicht als self.population.