IT Memory Note

[정보처리기사] 프로그래밍 언어 활용 : 파이썬(3) 본문

자격증/정보처리기사

[정보처리기사] 프로그래밍 언어 활용 : 파이썬(3)

h00ddu 2024. 8. 14. 09:17

 

7️⃣ 함수(Function)

 


(1) 사용자 정의 함수(User-Defined Function)

 

2. 사용자 정의 함수의 개념

 

  • 사용자가 직접 새로운 함수를 정의하여 사용하는 방법
  • 사용자 정의 함수에서 매개변수나 생성된 변수는 사용자 정의 함수가 종료되면 없어짐

2. 사용자 정의 함수의 선언
def 함수명(변수명, ...):
   명령어
   return 반환값

 


3. 디폴트 매개변수

 

  • 기본값이 정의된 매개변수
  • 함수를 호출할 때, 매개변수가 명시되어 있지 않으면 디폴트 매개변수 값이 전달됨
def 함수이름(매개변수=디폴트값):
   명령문

 


 

(2) 람다 함수(Lambda Function)

 

1. 람다 함수의 개념

 

  • 함수 이름 없이 동작하는 함수
  • 매개변수에 값을 전달하면 표현식에서 연산을 수행함

2. 람다 함수의 문법

 

⓵ 일반 람다 함수

 

lambda 매개변수 : 표현식
  • 콜론(:) 앞에서 매개변수를 입력받고, 콜론 뒤에서 표현식을 처리함

⓶ 변수를 이용한 람다 함수

 

  • 람다 함수를 변수에 할당하여 재사용할 수 있음

⓷ 사용자 정의 함수를 이용한 람다 함수

 

  • 사용자 정의 함수로 구현할 수 있음

⓸ 내장 함수를 이용한 람다 함수

 

  • 파이썬 map 함수, filter 함수와 같이 사용할 수 있음
함수 형태 설명
map map(함수, 리스트) 첫 번째 매개변수에는 함수, 두 번째 매개변수에는 리스트를 전달
리스트 요소를 함수에 전달하여 반복을 수행하는 함수
filter filter(함수, 리스트) 첫 번째 매개변수에는 함수, 두 번째 매개변수에는 리스트를 전달
리스트 요소를 함수에 전달하여 조건이 참인 값을 반환하는 함수

 


 

8️⃣ 클래스(Class)

☆☆

 


(1) 클래스의 개념

 

  • 객체 지향 프로그래밍(OOP, Object-Oriented Programming)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀

 

(2) 클래스의 정의

 

  • 클래스에서 변수는 변수 선언과 동일하고, 메서드는 사용자 정의 함수와 문법이 동일함
class 클래스명:
  def 메서드명(self, 변수명, ...):
    명령어
    return 반환값
  • 파이썬에서는 함수명에 입력받을 값(매개변수) 앞에 self라는 키워드를 적어야 함
class A:
  def fn(self):   # 입력받는 값이 없을 경우 self만 사용
    print(5)

 


 

(3) self

 

  • 현재 객체를 가리키는 키워드
  • 클래스 내부의 변수와 함수를 가리킬 수 있음
self.변수명
self.함수명(매개변수)

 


 

(4) 생성자(Constructour)

 

  • 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드
  • __init___이라는 메서드명을 사용하고, 첫 번째 매개변수로 self를 작성하며, 반환값이 없음
구분 코드
생성자 정의 class 클래스명:
   def __init__(self, 매개변수):
      명령어
생성자 호출 클래스변수 = 클래스(매개변수)

 


 

(5) 소멸자(Destructor)

 

  • 객체의 수명이 끝났을 때 객체를 제거하기 위한 목적으로 사용되는 메서드
  • __del__이라는 메서드명을 사용하고, 첫 번째 매개변수에 self를 작성하며, 반환값이 없음
구분 코드
소멸자 정의 class 클래스명:
   def __del__(self):
      명령어
소멸자 호출 del 클래스변수
클래스변수 = 클래스(매개변수)   # 생성자
del 클래스변수   # 소멸시

 


 

(6) 클래스 접근 제어자

 

  • 파이썬은 private, public 등의 접근 제어자 키워드가 존재하지 않고, 작명법(Namming)으로 접근 제어를 함
종류 규칙 설명
public 밑줄이 접두사에 없어야 함 외부의 모든 클래스에서 접근이 가능한 접근 제어자
protected 1개의 밑줄(_)이 접두사여야 함 같은 패키지 내부에 있는 클래스, 하위 클래스(상속받은 경우)에서 접근이 가능한 접근 제어자
자기 자신과 상속받은 하위 클래스 둘 다 접근이 가능한 접근 제어자
private 2개의 밑줄(__)이 접두사여야 함 같은 클래스 내에서만 접근이 가능한 접근 제어자

 


 

9️⃣ 클래스 상속(Inheritance)

 


(1) 클래스 상속의 개념

 

  • 어떤 객체가 있을 때 그 객체의 변수와 메서들르 다른 객체가 물려받는 기능
class 부모클래스명:
...
class 자식클래스명(부모클래스명):
...

 


 

(2) 메서드 오버라이딩(Overriding)

 

  • 하위 클래스에서 상위 클래스 메서드를 재정의할 수 있는 기능

< 오버라이딩의 특징 >

오버라이드하고자 하는 메서드가 상위 클래스에 존재하여야 함
메서드 이름은 같아야 함
메서드 매개변수 개수, 데이터 타입이 같아야 함

 

< 오버라이딩 구문 >

class 부모클래스명
  def 메서드명(self, 변수명):
    명령어
class 자식클래스명(부모클래스명):
  def 메서드명(self, 변수명):   # 부모 클래스와 메서드명, 매개변수가 같아야 함
    명령어

파이썬은 상속을 받는 경우 자바와 다르게 부모 클래스 생성자를 호출하지 않고, 호출해야 하는 경우 super().__init__()와 같이 직접 호출해야 함


 

(3) 부모 클래스 접근

 

  • 파이썬은 super 키워드를 이용하여 상위 클래스의 변수나 메서드에 접근할 수 있음
super().메서드명()