반응형
안녕하세요!
오늘은 파이썬에서 이해하기 힘들었던 클래스에 대해 설명하고자 합니다!
- 클래스란
- 클래스의 기본구조
- self
클래스 란?
클래스는 객체를 정의하는 틀 또는 설계도입니다.
예를 들어 신청서 양식이라고 생각하시면 됩니다. 사람들이 신청서를 적을 때 전화번호, 이름 등과 같이 모든 사람에게 꼭 받아야 하는 내용을 양식으로 미리 써 놓음으로 인해 입력의 반복을 줄이는 역할을 합니다.
클래스의 기본구조
클래스의 기본 구조는 아래 그림과 같이 작성이 됩니다.
class A는 A라는 이름을 가진 클래스를 선언하는 문장이고
def __init__(self)는 클래스를 불렀을 때 가장 먼저 실행이 되는 함수입니다.
(self는 나중에 설명할게요!)
파란색 네모는 __init__함수를 실행되었을 때 실행되는 기능을 말합니다. 예를 들어 파란색 네모에 print(1)이라는 것이 있다면 숫자 1을 출력하는 기능을 가지고 있는 부분입니다. 이 부분을 메서드라고 부릅니다.
이 클래스를 사용하기 위해선 어떻게 해야할까요?
class A:
def say_a(self):
print("a")
a = A() # 인스턴스화(객체)
a.say_a() # a 객체(인스턴스) 뒤에 .을 붙이고 메소드 호출
이 앞의 코드 처럼 클래스 A를 a로 인스턴스화를 해야지 a.say_a()를 입력하면
클래스 A에 있는 함수 say_a()의 메서드(내용)을 호출할 수 있습니다.
또 한 가지 예시로
class A:
def __init__(self):
print("a")
a = A() # 인스턴스화(객체)
함수 __init__은 클래스를 불렀을 때 가장 먼저 실행되는 함수여서
인스턴스화했다는 거 자체로 함수를 따로 안 불러도 a가 출력됩니다.
self
함수 밖에서 클래스를 사용할 때 인스턴스 화를 하여 접근하였는데
함수 안에서 인스턴스 화를 self를 사용하여 클래스 안의 있는 함수의 메서드를 사용할 수 있습니다.
예를 들면
class A:
def say_a(self):
print("a")
def say_b(self):
self.say_a()
a = A() # 인스턴스화(객체)
a.say_a()
a.say_b()
say_b()가 self.say_a()를 함으로 클래스 A에 있는 say_a()에 있는 메서드(기능)를 호출하는 것입니다.
틀린 것이 있다면 댓글에 남겨주세요!!!
반응형
'프로그래밍 이겨내기' 카테고리의 다른 글
자바가 당신의 선택이어야 하는 이유: 대중적인 객체 지향 언어의 매력 포착하기 (0) | 2023.07.07 |
---|---|
오픈 소스 SW의 중요 가치와 장단점 (0) | 2023.04.12 |
OSI에서 제시하고 있는 오픈소스SW조건 (0) | 2023.04.12 |
오픈 소스란? (feat.의미와 역사에 대하여) (0) | 2023.04.11 |
[자료구조] 자료구조와 알고리즘이란? (0) | 2023.04.02 |
댓글