[Python] 11-1장 객체 - 생성, 사용, 초기화(__init__() 생성자)

객체

- 객체는 속성(변수)과 동작(메소드)을 가진 하나로 묶음

객체 = 변수 + 함수(메소드)

 

 

 

객체 생성

1. 클래스(객체의 설계도) 정의

: 객체가 가지고 있는 속성을 변수로 표현, 객체의 동작은 메소드로 정의

class 클래스이름:
    # 변수 생성
    # 메소드 정의
class Car:  # Car라는 이름의 클래스 생성
    def drive(self):  # drive 메소드 생성
        self.speed = 10

 

 

2. 객체 생성

인스턴스 = 클래스()
myCar = Car()

 

 

3. 속성(변수) 추가

인스턴스.속성 = 값
myCar.speed = 0
myCar.color = "red"
myCar.model = "SUV"

 

 

4. 객체의 속성과 메소드 사용

print("자동차의 속도는",myCar.speed)  # 자동차의 속도는 0
print("자동차의 색상은",myCar.color)  # 자동차의 색상은 red
print("자동차의 모델은",myCar.model)  # 자동차의 모델은 SUV
print("자동차를 주행합니다.")  # 자동차를 주행합니다.
# 메소드 사용
myCar.drive()
print("자동차의 속도는",myCar.speed)  # 자동차의 속도는 10

 

 

 

이미 만들어진 객체 사용

1. 객체 생성

인스턴스 = 클래스()
# turtle 모듈에서 모든 것을 불러오기
from turtle import *
# Turtle 객체 생성
myTurtle = Turtle()

 

 

2. 객체의 변수나 메소드 사용

인스턴스.변수
인스턴스.메소드()
myTurtle.forward()  # 메소드 호출

 

 

 

객체 초기화(__init__())

- __init__() 생성자

: 객체를 생성할 때 제일 처음으로 들르는 곳

class 클래스이름:
    def __init__(self):
        self.변수 = 값
        self.변수 = 값
class Car:
    def __init__(self, speed, color, model):
        self.speed = speed
        self.color = color
        self.model = model
    
    def drive(self):
        self.speed = 60
        
myCar = Car(0, "red", "SUV")

 

 

 

여러 객체 생성

- 하나의 클래스로 여러 객체 생성 가능

- 객체가 가진 데이터는 객체마다 다르게 설정 가능

myCar = Car(0, "red", "SUV")
momCar = Car(0, "white", "A6")
dadCar = Car(0, "black", "520d")