[Python] Lv.2-2초급 / 함수, 변수, 모듈, 패키지, 멤버, 메소드, 클래스, 예외처리

🐷Jinie (juniorDeveloper)·2020년 9월 28일
0

Python

목록 보기
5/8

1. 함수

1-1. 함수 이해하기 (def)

Python에서 함수는 def로 시작하여 정의한다.
함수란, 특정 목적을 가진 코드의 집합이며 독립적으로 호출될 수 있는 것.
어떤 기능이 만들고자하는 프로그램의 여기저기서 사용된다면, 이 기능을 따로 만들어 '재사용'을 하는 것은 효율성을 높일 수 있다.
❗️함수를 사용하는 이유 : '재사용성'

함수를 선언하는 방법:

1. 인자와 리턴값이 있는 함수
def 함수이름(인자값1,인자값2):
✔️코드들
✔️return 결과값

2. 리턴값은 있지만 인자가 없는 함수 선언 방법
def 함수이름():
✔️코드들
✔️return 결과값

3. 인자와 리턴값이 없는 함수 선언 방법
def 함수이름():
✔️코드들
✔️return (또는 생략)

기본값을 대입한 기본 인자는 마지막에 위치해야 한다.
다음과 같이 기본 인자의 위치를 일반 인자 앞에 두면 오류가 발생한다.

올바른 방식으로 출력할 경우⬇️

2. 지역변수와 전역변수 이해하기 (global)

지역변수 : 함수 내에서만 유효한 변수, 지역변수 선언위치는 함수내부
전역변수 : 코드 전반에 걸쳐 유효한 변수, 전역변수 선언 위치 함수바깥
❗️지역변수는 함수를 벗어나면 더 이상 유효하지 않다.

3. 모듈

3-1. 모듈 이해하기

모듈은 보통 하나의 독립된 Python 소스 파일로 구성되어 있다.
이미 만들어져 있고 안정성이 검증된 함수들을 성격에 맞게 하나의 파이썬 파일에 묶어 만들어 놓은 것을 '모듈'이라고 한다.
외부 모듈에 있는 함수들을 활용하기 위해 우리 코드로 가져와서 사용할 수 있도록 하는 것을 '모듈을 임포트(import)한다고 한다.

3-2. 모듈 임포트 이해하기 1

'import 모듈이름'으로 모듈이름에 해당하는 파이썬 모듈을 임포트한다.
import.모듈이름
import.패키지이름.모듈이름

내가 만든 함수를 임포트해서 다른 파일에서 사용하기

  1. 함수가 담겨있는 파일을 만든다.
  2. 사용하고자 하는 파일에서 임포트한 후 함수를 사용한다.

3-3. 모듈 임포트 이해하기 2 -from

from ~import
원하는 모듈만 임포트하여 간단하게 사용할 수 있다.
계층구조로 되어 있는 복잡한 모듈은 from~import로 임포트하면 편리하게 사용할 수 있다.

from 모듈이름 import 함수이름
from 패키지이름 import 모듈이름

3-4. 모듈 임포트 이해하기 3 -as

이름이 긴 모듈에 간단한 별칭을 붙여 편리하게 이용할 수 있다.

import 이름이 긴 모듈명 as 별명

4. 패키지 이해하기

모듈 : 하나의 python파일
패키지 : 디렉터리

파이썬 모듈을 계층적인 디렉터리 형태로 구성한 것을 '패키지'라고 한다.

5. 클래스

5-1. 클래스 이해하기

이름을 지정하여 만드는 하나의 독립된 공간 '클래스'
클래스를 활용하면 코드가 간결해지고 체계적으로 구성할 수 있다.

객체지향 프로그래밍에서 중요한 단어 '클래스'
'클래스'는 프로그래머가 지정한 이름으로 만든 하나의 독립된 공간이다.
클래스를 구성하는 주요요소는 클래스멤버(변수역할), 클래스메소드(함수역할)
클래스는 클래스 공간에서 정의되는 것 말고는 보통의 변수나 함수와 그 역할이 비슷하다.

class 클래스이름:
✔️클래스 멤버정의
✔️클래스 메소드 정의

5-2. 클래스 멤버와 인스턴스 멤버 이해하기

클래스에서 선언되는 변수는 클래스 멤버와 인스턴스 멤버가 있다.
클래스 멤버는 클래스 메소드 바깥에서 선언되고 인스턴스 멤버는 클래스 메소드 안에서 'self'와 함께 선언되는 변수

  1. 클래스 변수
  • 단체의 단체명과 같이 클래스로 만들어진 모든 인스턴스가공유하는 데이터를 담는 변수
  • 객체에 의해서 변경이 되면 안되는 변수
  • 반드시 고정값으로 사용되어야만 하는 데이터는 클래스로 선언해서사용한다.
  1. 인스턴스 변수
  • 데이터를 담는 변수
  • 객체에 의해서 변경이 가능한 데이터의 변수

5-3. 클래스 메소드 이해하기

클래스 내에서 정의되는 함수인 클래스 메소드
클래스 메소드의 첫 번째 인자는 반드시 'self'

5-4. 클래스 소멸자 이해하기

클래스의 인스턴스 객체가 메모리에서 제거될 때 자동으로 호출되는 클래스 소멸자
del <인스턴스 객체>

  • 참고사항 : Java는 객체를 소멸할 수 없다.

6. 예외처리 이해하기

6-1. try~except

코드에서 예외 상황이 발생했을 때 프로그램을 종료시키지 않고 예외를 처리하는 방법
예외 발생 가능성이 있는 코드는 try와 except 사이에 위치시킵니다.

6-2. try~ except ~ else

예외가 발생하지 않았을 때만 실행해야하는 코드 처리 방법
except 예외발생시 실행
else 예외가 발생하지 않았을 경우에 실행

  1. 예외가 발생했을 때, except

  2. 예외가 발생하지 않았을 때, else

6-3. try ~ except ~ finally

예외 발생 유무와 상관없이 무조건 실행해야 하는 코드처리방법
finally 예외발생여부와 상관없이 무조건 실행해야하는 코드

6-4. try ~except Exception as e

예외 발생 내용을 확인하고자 하는 경우
e가 예외 발생 내용이 담긴 변수

6-5. try ~except 특정 예외

코드에서 특정 예외가 발생했을 때만 코드를 처리하는 방법

control+C가 입력되면 try 내부에 있는 로직에서 예외가 발생하게 되고, '사용자에 의해 중단되었습니다.' 를 출력하고 프로그램을 중단한다.


Python 기본문법도 이제 중반부 쯤 다가오니 어렵게 느껴지기 시작했다.
클래스, 메소드, 패키지에 대한 개념을 한 번 더 정리하고 복습해야 할 필요가 있다고 느껴진다. :)

profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글