객체 지향 개념 구현

이 장에서는 객체 지향 개념을 사용하는 패턴과 파이썬에서의 구현에 중점을 둘 것입니다. 함수 주변의 데이터를 조작하는 문 블록을 중심으로 프로그램을 설계 할 때이를 프로 시저 지향 프로그래밍이라고합니다. 객체 지향 프로그래밍에는 클래스와 객체라는 두 가지 주요 인스턴스가 있습니다.

클래스와 객체 변수를 구현하는 방법은 무엇입니까?

클래스와 객체 변수의 구현은 다음과 같습니다-

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

산출

위의 프로그램은 다음과 같은 출력을 생성합니다-

설명

이 그림은 클래스 및 개체 변수의 특성을 보여줍니다.

  • "인구"는 "로봇"클래스에 속합니다. 따라서 클래스 변수 또는 객체라고합니다.

  • 여기서는 인구 클래스 변수를 self.population이 아니라 Robot.population이라고합니다.