Programming

; develop a program

Back-End/Python

[Python] 특수 메소드

Clloud_ 2022. 9. 28. 12:04
반응형

이번 포스팅에서는 파이썬의 특수 메소드 중 객체와 관련되어 있는 메소드에 대하여 공부를 해보고자 한다.

 


특수 메소드

특수 메소드란 클래스에 정의하는 약속된 메소드로 객체가 특정한 상황에서 사용될 때 자동으로 호출되는 메소드들이다.

 

메소드 명이 더블 언더스코어(__)로 시작하고 끝난다. 

ex) __init__( ), n__str( )__

 

매직 메소드(Magic Method), 던더(DUNDER) 메소드라고도 한다.

 


객체 관련 특수 메소드

isinstance(객체, 클래스 이름)
객체가 두 번째 매개변수로 지정한 클래스의 타입이면 True, 아니면 False 반환하는 메소드

 

객체.__dict__
객체가 가지고 있는 instance 변수들과 대입된 값을 dictionary에 넣어 반환하는 메소드

 

객체.__class__
객체의 타입을 반환하는 메소드

 

객체.__dir__

객체의 모든 속성, 메소드들의 이름을 리스트로 묶어서 반환하는 메소드

 

type(객체)

객체의 클래스 이름을 어느 클래스로부터 생성된 객체/값 인지 반환하는 메소드

 

예제

두 개의 클래스를 상속하는 WordProcessor 클래스를 정의한다. (다중 상속)

class WordProcessor(Printer, Saver):  # Printer와 Saver 두개 클래스를 상속 => 다중 상속

    def write(self):
        print("글을 작성한다.")

    def test(self):
        print('word processor에서 글쓰기 테스트')

WordProcessor 클래스를 선언한다.

객체 관련 특수 메소드들 이용하여 각각의 값을 반환한다.

wp = WordProcessor()
type(wp)

isinstance(wp, WordProcessor)
isinstance(wp, Printer)
isinstance(wp, Saver)

wp.__class__ 

wp.__dict__

wp.__dir__()

[실행결과]

__main__.WordProcessor
True
True
True
__main__.WordProcessor
{}
wp.xxxx 호출할 수 있는 모든 것들의 이름을 반환

 


반응형