프로그램/파이썬
클래스 정의와 self
cjw0107
2020. 7. 30. 17:50
'널널한 교수의 기초 파이썬'의 내용을 인용하여 공부를 목적으로 작성된 게시물입니다.
#1. 클래스(class)
클래스는 추상화된 현실의 개념을 구체적인 파이썬 코드로 표현하기 위해 사용된다.
클래스를 통해 생성되는 인스턴스, 인스텃스의 인스턴스 변수와 메소드에 대한 구체적인 설명은
앞서 포스팅 2020/07/30 - [프로그램/파이썬] - 객체 지향 프로그래밍 과 클래스 에서 언급했으므로 생략한다.
클래스의 정의는
1
2
3
4
5
6
7
8
|
class Classname:
# __init__ : 초기화 메소드
def __init__(self):
self.InstanceVarible = 'value'
# 'method1' 메소드 생성
def method1(self):
self.InnerMthodInstanceVariable = 'value'
# <statement-1>
|
cs |
형태로 진행된다.
self의 의미, 메소드의 호출 및 인스턴스 변수의 활용은 아래에 서술한다.
#2. self
파이썬 self는 클래스의 인스턴스를 지칭하며 self 키워드를 통해 클래스의 메소드와 속성에 접근이 가능하다.
모든 메소드의 첫 번째 매개변수는 자기 자신을 가리키는 self변수다. 즉 이 메소드를 호출한 현재 객체를 의미한다.
self, 메소드, 인스턴수 변수의 활용을 실습하기 위해 Family class를 생성하고 인스턴스 변수와 메소드를 정의 및 호출해 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
'''
Family 클래스 만들기 예제
이후 Family 클래스를 이용하여 다른 클래스에 오버라이딩 해보자.
'''
# Family 클래스 생성
class Family:
def __init__(self, father="아버지", mother="어머니", me='내이름'):
self.father = father
self.mother = mother
self.me = me
def info(self):
print('아버지 : {}, 어머니 : {}, 나 : {}'.format(self.father, self.mother, self.me))
# Family 클래스를 이용한 인스턴스 생성
Fam1 = Family(father='최아무', mother='송아무', me='최무개') # Fam1 인스턴스 생성
Fam2 = Family(father='이아무', mother='송아무', me='이무개') # Fam2 인스턴스 생성
# 인스턴수 변수 출력
print(Fam1.father)
print(Fam2.father)
# 메소드
Fam1.info()
Fam2.info()
|
cs |
Faily 클래스를 생성하여 Fam1, Fam2 두개의 인스턴스를 생성, 초기화 메소드를 사용해 인스턴스 변수 4개(father, mother, me)와 메소드 info를 정의 했다.
이후 print(Fam1.father) print(Fam2.father), Fam1.info(), Fam2.info()의 실행결과는
인스턴스 각각의 father 변수와 info() 메소드의 출력인 가족전체의 정보가 출력된다.