본문 바로가기
Python(with Anaconda)

[Python] Class

by moveho 2022. 10. 27.

Class란 ?

과자 만드는 틀과 놓여 있는 과자들

  • 과자 틀 → 클래스 (class)
  • 과자 틀에 의해서 만들어진 과자 → 객체 (object)

여기에서 설명할 클래스는 과자 틀과 비슷하다. 클래스(class)란 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면이고(과자 틀), 객체(object)란 클래스로 만든 피조물(과자 틀을 사용해 만든 과자)을 뜻한다.

 

클래스로 만든 객체에는 중요한 특징이 있다. 바로 객체마다 고유한 성격을 가진다는 것이다. 과자 틀로 만든 과자에 구멍을 뚫거나 조금 베어 먹더라도 다른 과자에는 아무 영향이 없는 것과 마찬가지로 동일한 클래스로 만든 객체들은 서로 전혀 영향을 주지 않는다.

 

 

Class 구조 알아보기

class Person:
    def __init__(self, name):
        self.name = name
        self.age = age
    def PrintName(self):
        print('hello my name is %s' %self.name)

p1.= person('john', 36)
p1.name
p1.age
p1.PrintName()

파이썬 method의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다. 객체를 호출할 때 호출한 객체 자신이 전달되기 때문에 self를 사용한 것이다. 물론 self말고 다른 이름을 사용해도 상관없다.

 

method의 첫 번째 매개변수 self를 명시적으로 구현하는 것은 파이썬만의 독특한 특징이다. 예를 들어 자바 같은 언어는 첫 번째 매개변수 self가 필요없다.

 

<다른 예시>

class Person:
    def __init__(self, name):
        self.name = name
        
    def speak(self):
        print('Hello')
        
    def run(self):
        print('Run fast!')

class Runner(Person):
    def run(self):
        print('Run SUPER fast')

r = Runner('Lee')
r.run()
r.speak()

p = Person ('Lee')
p.run()
p.speak()

댓글