반응형

안녕하세요.

 

이번 포스팅에서는 파이썬의 클래스에 대해 적어 보려고 합니다.

 

1. 클래스란?

 

객체지향 프로그래밍을 배워보신 분 이라면 클래스의 개념이 익숙하실 거라고 생각 합니다.

 

클래스란 객체를 만들기 위한 틀 이라고 생각 하시면 됩니다.

 

보통 붕어빵의 틀 을 예시로 많이 듭니다.

 

붕어빵의 틀을 반죽과 속, 굽는 시간 등을 정해야 된다 하면,

 

완성된 붕어빵은 다양한 종류로 나올 수 있을 것 같습니다.

 - (밀가루 반죽 & 팥 속 & 5분 굽기)

 - (쌀가루 반죽 & 슈크림 속 & 10분 굽기)

 - .......

 

완성 된 하나의 붕어빵을 하나의 객체로 볼 수도 있을 것 같습니다.

 

프로그램에서 클래스는 함수와 변수의 조합으로 이루어 집니다.

 

 

2. 파이썬 클래스 선언

 

파이썬에서 클래스는 다음과 같이 구성 됩니다.

 

class 클래스이름:
	def 함수1이름:
		함수1 내용
        ......
       
	def 함수2이름:
		함수2 내용
		......
	
	변수1 = ....

	변수2 = ....

 

하나의 클래스는 여러 함수와 변수의 묶음 입니다.

 

 

3. __init__ 함수

 

클래스에 선언하는 함수 중 '__init__' 함수라는 특별한 함수가 있습니다. (이하 양쪽 언더바를 제거하고 init 함수로 표시)

 

init 함수는 말 그대로 클래스를 생성 시 초기화 하는 함수 입니다.

 

기본적으로 할당 해주어야 하는 변수 들을 설정하는 용도로 많이 쓰입니다.

 

class testClass : #testClass 라는 클래스
	def __init__ (self, name, age):
		self.name = name
		self.age = age
		
        ......
        

 


위 예시에서는 init 함수에서 name과 age를 받아 클래스의 name과 age 변수를 초기화 합니다.

 

클래스를 생성할 때에는 다음과 같이 생성 하시면 됩니다.

 

클래스변수명 = 클래스명(init 함수의 매개변수 들)

 

위 예시 대로라면

 

test = testClass('Park', 31)

 

이런 식으로 클래스를 생성하실 수 있습니다.

 

그러면 __init__ 함수가 자동으로 실행 되며, 클래스 내부의 변수가 초기화 됩니다.

 

 

4. 클래스의 변수와 함수 호출

 

클래스의 변수와 함수를 호출하는 방법은 아주 간단합니다.

 

클래스의 변수 호출 시에는 : 클래스변수명.변수명

 

클래스의 함수 호출 시에는 : 클래스변수명.함수명()

 

의 형태로 호출하시면 됩니다.

 

위의 예시에서는

 

test.name, test.age

 

등으로 호출하시면 될 것 같습니다.

 

 

5. 상속

 

본 포스팅에서는 가장 기본적인 내용만 다뤄보겠습니다.

 

객체지향 프로그래밍에서 상속이란,

 

부모 클래스의 모든 속성 (데이터, 메소드)를 자식 클래스로 물려주는 기능 입니다.

 

기본적인 것들은 부모 클래스의 것들을 물려받고,

 

자식 클래스만의 데이터나 메소드를 정의 합니다.

 

상속을 사용 할 경우 동일한 코드를 중복해서 작성할 필요가 없고,

 

코드의 유지 보수도 쉬워지게 됩니다.

 

 

파이썬에서는 클래스의 상속을 다음과 같이 작성할 수 있습니다.

 

class 자식클래스명 (부모클래스명) :

 

자식 클래스에서 부모 클래스의 변수나 함수를 불러올 때에는

 

super().XXX

 

으로 불러올 수 있습니다.

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1502)
Profile (2)
Park's Life (600)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (245)
생활 정보 (12)
Pokemon GO (50)