클래스 기초

클래스 (Class)는 데이터와 함수의 집합으로써, 새로운 타입의 객체를 만드는데 사용됩니다.

클래스를 ‘틀’로 사용해서 인스턴스 (Instance)가 만들어질 때, 메모리에 할당되어서 객체가 실체화됩니다.

클래스의 기초에 대해 알아봅니다.


클래스 정의하기

예제

class Person:

  age = 20
  gender = 'Male'

  def say_hello(self):
    print('Hello')

클래스는 여러 속성 (Attribute) 을 가지는데,

속성은 age, gender와 같이 데이터 (Data)일 수도 있고, say_hello() 와 같이 메서드 (Method)일 수도 있습니다.



인스턴스 객체 만들기 (Instantiation)

class Person:

  age = 20
  gender = 'Male'

  def say_hello(self):
    print('Hello')


Eric = Person()

print(Eric.age)
print(Eric.say_hello())
20
Hello
None

함수를 호출하는 것과 비슷한 방식으로 Person()을 호출함으로써 클래스의 인스턴스가 만들어집니다.

이때 Person()을 클래스의 생성자 (Constructor) 라고 합니다.

클래스의 인스턴스 객체를 만들고 변수 Eric에 할당했습니다.

Eric이라는 인스턴스는 미리 정의한 Person 클래스와 같이 age, gender와 같은 속성을 가집니다.



__init__()

예제

class Person:

  def __init__(self, age, gender):
    self.age = age
    self.gender = gender

  def say_hello(self):
    print('Hello')

클래스 객체를 호출함으로써 인스턴스를 만들면 새로운 객체가 하나 만들어집니다.

흔히 커스터마이즈된 특정 초기 상태를 갖고 만들어지기를 바라기 때문에, __init__() 라는 특수 메서드를 정의합니다.


Andy = Person(25, 'Female')

print(Andy.age)
print(Andy.gender)
25
Female

클래스가 __init__() 메서드를 정의하면, 인스턴스가 만들어질 때 자동으로 호출이 되면서,

새로 만들어진 인스턴스 Andy는 입력된 값 25, ‘Female’으로 변수를 초기화할 수 있습니다.

이제 Andy.age, Andy.gender는 각각 25, ‘Female’이라는 값을 갖게 됩니다.



이전글/다음글