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