В этой главе мы сосредоточимся на шаблонах с использованием объектно-ориентированных концепций и их реализации на Python. Когда мы разрабатываем наши программы вокруг блоков операторов, которые манипулируют данными вокруг функций, это называется процедурно-ориентированным программированием. В объектно-ориентированном программировании есть два основных экземпляра, называемых классами и объектами.
Как реализовать классы и переменные объекта?
Реализация классов и переменных объекта следующие:
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()
Выход
Вышеуказанная программа генерирует следующий вывод —
объяснение
Эта иллюстрация помогает продемонстрировать природу переменных класса и объекта.
«Население» относится к классу «Робот». Следовательно, он упоминается как переменная класса или объект.
Здесь мы называем переменную класса совокупности как Robot.population, а не как self.population.