TIL20 | Python_Class

이정아·2021년 9월 19일
0

Python

목록 보기
11/20
post-thumbnail

1. Class란?

Class

  • 클래스란 무엇인가(여러 객체)를 계속 만들 수 있는 설계도면과도 같다.

object(객체)

  • 클래스로 만든 피조물을 뜻하고, instance라 부른다.
  • 동일한 클래스로 만든 객체들은 서로 영향을 주지 않는다.


자동차로 예를 들자면

car는 Class이고
Lexus, BMW, Benz, Hyundai 는 객체이자 인스턴스이다.

2. Class 정의와 attribute(속성)

#class 예시

class Car: #클래스명 첫글자는 항상 대문자
    #코드내용

#객체 만들기(실체화)

BMW  = Car()
Benz = Car()

1. __init__ 메서드를 사용해 생성자 구현

  • 생성자(Constructor)란 객체가 생성될 때 자동으로 호출되는 메서드를 의미

  • 자동차 속성 예시
    Maker (현대, BMW 등)
    Model (BMW 435i, 제네시스 등)
    Horse Power - 마력

class Car:
    def __init__(self, maker, model, horse_power):
        self.maker       = maker
        self.model       = model
        self.horse_power = horse_power
  • 파라미터에 self => 객체 자신을 뜻한다.
  • self.maker 의 maker는 객체변수이다.(model, horse_power도 마찬가지)
  • 클래스 내 정의되는 함수는 함수가 아닌 메서드다.

2. 객체 만들기

hyundai = Car("현대", "제네시스", 500)
# 여기서 이미 __init__메서드가 자동으로 호출됨

3. "경적 울리기" 메서드 추가

class Car:
    def __init__(self, maker, model, horse_power):
        self.maker       = maker
        self.model       = model
        self.horse_power = horse_power

    def honk(self):
        return "빠라바라빠라밤"
  • 모든 메서드엔 self가 첫 번째 파라미터로 들어가야 한다.

4. 메서드 사용

hyundai = Car("현대", "제네시스", 500)
hyundai.honk()
>>> "빠라바라빠라밤"

#경적소리 앞에 회사명 넣기

class Car:
    def __init__(self, maker, model, horse_power):
        self.maker       = maker
        self.model       = model
        self.horse_power = horse_power

    def honk(self):
        return f"{self.maker} 빠라바라빠라밤"
        #객체변수 사용하기!
     
    
    
    hyundai.honk()
    >>> "현대 빠라바라빠라밤"
    
    Benz.honk()
    >>> "벤츠 빠라바라빠라밤"
    

3. 클래스를 사용하는 이유?

  1. 하나의 클래스를 통해 여러 객체를 생성하고 코드의 반복을 줄일 수 있다.
  2. 클래스 하나만 변경하여 여러 객체에 영향을 줄 수 있다.

0개의 댓글