안녕하세요 독학코딩입니다. 오늘은 파이썬 클래스의 메소드에 대해서 배워보겠습니다. 파이썬의 메소드는 클래스 내에 존재하는 함수로 직역하자면 클래스의 도구 같은 것 입니다. 아래의 예제를 기준으로 설명드리겠습니다.
Python Class, 메소드
class My_class():
def add(self, numA, numB):
return numA + numB
def subtract(self, numA, numB):
return numA - numB
여기서 My_class()
클래스 내에 add()
와 subtract()
가 메소드 입니다.
x = My_class()
print(x.add(5, 6))
이런 방식으로 호출하여 사용할 수 있습니다.
Python Class, 인스턴스 변수
class My_cat():
kind = "Korean Short Hair"
def __init__(self, name):
self.name = name
인스턴스 변수는 인스턴스별 데이터를 위한 것이고 클래스 변수는 그 클래스의 모든 인스턴스에서 공유되는 어트리뷰트와 메서드를 위한 것입니다. 위의 예시로 설명하자면 kind
가 모든 인스턴스르 위한 클래스 변수이고 self.name
이 각각의 인스턴스를 위한 인스턴스 변수입니다.
쉽게 설명하자면 클래스 변수는 모든 클래스가 공통적으로 갖고있는 변수이고, 인스턴스 변수는 각각의 따로따로 설정할 수 있는 변수인 것입니다.
CatA = My_cat("dami")
print(CatA.kind)
print(CatA.name)
CatB = My_cat("manda")
print(CatB.kind)
print(CatB.name)
위와 같이 kind
는 어떤 클래스든 동일하지만 name
은 설정하기에 따라 다른걸 확인하실 수 있으실겁니다.
Python Class, 상속
파이썬에서 클래스를 사용하는 가장 큰 이유가 바로 상속입니다. 그 만큼 중요하니 잘 알아두시길 바랍니다. 상속이라는 것은 말 그대로 한 클래스가 가지고 있는 유산(어트리뷰트)을 다른 클래스에게 상속시켜 주는 행위입니다.
class My_cat():
kind = "Korean Short Hair"
def __init__(self, name):
self.name = name
class Strange_cat(My_cat):
def __init__(self, name, location):
My_cat.__init__(self, name)
self.location = location
CatC = Strange_cat("coco", "under bridge")
print(CatC.kind)
print(CatC.name)
print(CatC.location)
위의 예에서 보시면 Strange_cat()
이 인수로 My_cat
을 받은 것을 보실 수 있으실 겁니다. 상속은 이렇게 합니다. 또한 My_cat.__init__(self, name)
처럼 My_cat
의 메소드를 호출하여 Strange_cat()
의 메소드로도 사용할 수 있습니다.
즉, 위의 예제에서 print(CatC.kind)
는 Strange_cat(My_cat)
을 통해서 상속된 것이고, print(CatC.name)
은 My_cat.__init__(self, name)
을 통해서 상속된 것입니다.
'Python > Python 고급' 카테고리의 다른 글
Python module, 파이썬 모듈 기초 (0) | 2022.03.23 |
---|---|
Python 파이썬, Class 메서드 오버라이딩 (0) | 2022.03.22 |
Python 파이썬 Class 생성 및 기초 (0) | 2022.01.17 |
댓글