제로베이스 데이터 취업 스쿨 1주차 스터디노트 4호
객체지향하면 늘 나오는 예제, 자동차!
class Car:
def __init__(self):
self.color = "Red"
이 세 줄은 '내가 만드는 자동차는 이러이러해야 해'하는 청사진을 만든 것이다.
그럼 자동차를 만들어보자.
my_car = Car()
자동차가 만들어졌다(?)
나만 차를 가지고 있으면 좀 그러니까
친구한테도 차를 만들어주자.
난 대인배니까.
friend_car = Car()
친구의 자동차가 만들어졌다.
아.. 그런데 색이 똑같으니 개성이 너무 없다.
내 차의 색을 시크한 검은색으로 바꾸자.
my_car.color = "Black"
print(my_car.color) # Black
그런데 굳이 빨간 차로 생산을 하고,
색을 이후에 바꾸어야만 할까?
그게 귀찮으니 처음부터 색을 지정해줄 수는 없을까?
안될 이유가 없다.
class Car:
def __init__(self, color):
self.color = color
음.. 색을 지정하기 귀찮으면?
그러면 그냥 기본적으로 파란색으로 해두자.
class Car:
def __init__(self, color="Blue"):
self.color = color
my_car = Car("Black")
print(my_car.color) # Black
friend_car = Car()
print(friend_car.color) # Blue
근데 내 자동차 my_car은 움직이지를 못한다.
움직이지 못하면 자동차가 무슨 소용이겠는가.
자동차가 움직일 수 있게 해보자.
앞의 자동차 청사진에 수정을 한다.
이후 Car 클래스를 다시 호출해주어야 한다.
class Car:
def __init__(self):
self.color = "Red"
def move(distance):
print(f"moved {distance}m")
my_car = Car()
이제 차를 움직여보자.
my_car.move(50)
차가 50m 움직였다(고 주장한다).