추상화(abstraction)란 불필요한 정보는 숨기고 중요한(필요한)정보만을
표현함으로써 공통의 속성 값이나 행위(methods)를 하나로 묶어 이름을 붙이는 것이다.

class Robot:
population = 0 #클래스 변수 : 인스턴스들이 공유하는 변수
def __init__(self, name, code):
self.name = name #인스턴스 변수
self.code = code #인스턴스 변수
Robot.population +=1
def say_hi(self):
print(f"Greetings, my masters call me {self.name}")
def cal_add(self,a,b):
return a+b
def die(self):
print(f"{self.name} is being destroyed!")
Robot.population -= 1
if Robot.population == 0:
print(f"{self.name} was the last one")
else:
print(f"There are still {Robot.population} robots working")
#클래스 메서드
@classmethod
def how_many(cls): # self는 instance를 받고, cls는 class(Robot)를 받는다
print(f"We have {cls.population} Robot ")
print(Robot.population) # 0
siri = Robot('siri',21039788127)
jarvis = Robot('jarvis',231124532)
bixby = Robot('bixby',23153211)
print(Robot.population) #3
print(siri.name) #siri
print(siri.code) #21039788127
siri.say_hi() #Greetings, my masters call me siri
print(siri.cal_add(2,3)) #5
Robot.how_many() #We have 3 Robot <Robot이 cls이다.>
Robot : class 공간
→ Class namespace에서 instance 각각들이 공유하는 변수와 메소드를 정의할 수 있다. (변수 = class 변수 / 메소드 = class 메소드)
정보 감사합니다.