파이썬은 객체지향의 기본적인 개념인 클래스를 지원합니다.
클래스를 사용함으로 관련 변수와 함수들을 하나로 묶어서 효율적으로 관리할 수 있게 해 줍니다.
클래스를 정의하는 방법은 다음과 같습니다.
class 클래스이름:
멤버
클래스를 사용하기 위해선 인스턴스를 생성해야 합니다.
여기서 객체(object)와 인스턴스(instance)라는 개념을 알아보고 가겠습니다.
다음과 같이 클래스를 사용할 수 있습니다.
class MyClass:
pass
a = MyClass()
*pass는 함수 또는 클래스가 미구현 상태일 때 그냥 지나가라는 의미입니다. 일단 정의는 하지만 아직 내용을 정하지 못했을 때 사용합니다.
a는 객체입니다. a는 MyClass의 인스턴스입니다.객체는 속성과 동작들이 하나로 묶은 데이터를 말합니다.`클래스를 이용해서 만든 객체를 인스턴스라고 합니다.
이제 클래스 특수 메서드에 대해서 알아보겠습니다.
* 메서드란 클래스 내에 정의된 함수들을 의미합니다.
클래스에는 __(언더바 2개)로 시작하는 특수 메서드들이 있습니다.
그중 가장 대표적인 생성자와 소멸자입니다.생성자는 객체를 초기화해줍니다.생성자는 객체가 생성될 때 자동으로 호출되는 메서드임으로 생략해도 상관없지만 생성자를 이용해서 초기값을 전달받을 수 있습니다.생성자는 __init__로 이미 정의되어있습니다.
class 클래스명:
def __init__(self):
코드
생성자의 예제를 보면
class Person:
def __init__(self):
print("객체 생성")
a = Person()
생성자의 첫 번째 매개변수는 무조건 self입니다. (다른 이름도 상관없지만 통상적으로 self를 사용합니다.)
self는 생성된 객체를 뜻합니다. 만약 매개변수에 추가로 초기값을 받는다면 다음과 같이 받을 수 있습니다.
class Person:
def __init__(self, name, age):
print("객체 생성")
print("이름 : ", name)
print("나이 : ", age)
a = Person("홍길동", 21)
반대로 소멸자는 객체가 소멸될 때 자동으로 호출되는 메서드입니다.
소멸자는 __del__로 정의되어있습니다.
class 클래스명:
def __del__(self):
코드
예제로 보면
class Person:
def __init__(self, name, age):
print("객체 생성")
print("이름 : ", name)
print("나이 : ", age)
def __del__(self):
print("객체 소멸")
a = Person("홍길동", 21)
del a
del을 이용해서 객체를 제거하면 소멸자가 자동으로 호출됩니다.
'공부 자료실 > 파이썬(Python)' 카테고리의 다른 글
파이썬(Python) - 클래스 _ 상속 (0) | 2020.07.15 |
---|---|
파이썬(Python) - 클래스 _ 변수의 종류 및 접근권한 (0) | 2020.07.14 |
파이썬(Python) - 모듈(module) (0) | 2020.07.10 |
파이썬(Python) - 딕셔너리와 리스트, 튜플 (0) | 2020.07.09 |
파이썬(Python) - 딕셔너리(Dictionary) (0) | 2020.07.09 |
댓글