공부 자료실/파이썬(Python)

파이썬(Python) - 클래스(class) _ 클래스 생성

자료수집중 2020. 7. 13.
반응형

 

파이썬은 객체지향의  기본적인 개념인 클래스를 지원합니다.

클래스를 사용함으로 관련 변수와 함수들을 하나로 묶어서 효율적으로 관리할 수 있게 해 줍니다.

 

클래스를 정의하는 방법은 다음과 같습니다.

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을 이용해서 객체를 제거하면 소멸자가 자동으로 호출됩니다.

 

댓글