파이썬 클래스

파이썬에서는 기본적으로 OOP(Object-Oriented Programming)를 지원한다. 파이썬에서 사용되는 모든 것들은 객체로 이루어져 있으며, 객체로 처리된다. 하지만, 파이썬은 인터프리터 언어로 일반적인 main 함수(또는 메서드)가 없어도 실행이 되며, 동적 바인딩을 통한 객체에 값을 할당한다. 때문에 C 언어와 같이 클래스가 없이 함수들의 집합으로만 이루어지게 코드를 작성할 수 있지만, 알아두면 좋을 객체 지향의 장점을 살릴 수 있는 클래스와 객체에 대해 간단하게 알아보자.

 

 

클래스(class)란?

공통되는 것들을 묶어서 대표적인 이름을 붙인 것이다. 또 클래스가 개념적이라면, 객체는 구체적이라 할 수 있다. 클래스는 객체와 관련지어 생각하면 더 쉽게 이해할 수 있다. 가장 쉽게 예를 들자면, 객체는 붕어빵이고 클래스는 붕어빵을 만드는 틀이다. 

 

 

클래스의 선언

파이썬에서 클래스를 선언하기 위해선 “def 클래스명():”를 이용해 클래스를 선언하며, 이름 명명 규칙은 일반적으로 카멜 케이스를 따른다. 아래 예는 MyCar라는 간단한 클래스를 선언하는 코드이다.

def MyCar():
	pass

위 코드에서는 클래스 안에 작성된 코드가 없는 빈 클래스이므로 pass 키워드를 통해 아무 일도 하지 않는 것을 명시한다.

 

 

스네이크 케이스& 캐멀케이스

① 스네이크 케이스(Snake_case)

단어 사이에 '_'(언더 바)기호를 붙여 식별자를 만드는 방식

item_list, login_status, character_hp, rotate_angle

② 캐멀 케이스(CamelCase)

낙타의 등이 삐져나온것처럼 글을 쓰는 방식

(첫번째 글자를 소문자로 하냐 대문자로 하냐 말은 많은데 Python에서는 거의 무조건 대문자로 적는다.)

유형1 :ItemList, LoginStatus, CharacterHp, RotateAngle → Python에서 주로 사용함
유형2: itemList, loginStatus, characterHp, rotateAngle → Python에서 사용 잘 안함.

 

 

식별자

프로그래밍 언어에서 이름을 붙일 때 사용하는 단어이다. 주로 변수 또는 함수 이름 등으로 사용됨.

특히 식별자는 다음 규칙을 지켜야함.

 

 - 키워드를 사용하면 안됨.

 - 특수 문자는 _(언더 바)만 허용

 - 숫자로 시작하면 안됨.

 - 공백을 포함할 수 없음.

 

 

식별자 구분하기!!!!!★☆★☆(매우중요)

위에서 설명하였지만 그렇다면! 첫 번째 글자가 소문자라면 Python에서는 무조건 스네이크 케이스라는 것

print    input    list    str    map    filter

 반대로 첫번째 글자가 대문자라면 무조건 캐멀 케이스가 된다.

Animal    Customer

보통 파이썬에서는 캐멀 케이스와 스네이크 케이스를 상황에 따라 쓰는데 다음과 같다.

 

캐멀 케이스로 작성되면 보통 클래스이고

스네이크 케이스로 작성되어 뒤에 괄호가 없으면 변수, 있으면 함수로 나눈다.

항상 예외는 존재하나 그것들은 무시하고 위의 기준을 알아도 상관없다.

 

 

 

파이썬 모듈

모듈(Module)은 파이썬 코드를 논리적으로 묶어서 관리하고 사용할 수 있도록 하는 것으로, 보통 하나의 파이썬 .py 파일이 하나의 모듈이 된다. 자바 언어에서 클래스를 import 해서 사용하는 것과 같은 방법이다. 모듈 안에는 함수, 클래스, 혹은 변수들이 정의될 수 있으며, 실행 코드를 포함할 수도 있다. 이러한 모듈들을 사용하기 위해서는 모듈을 import구문을 이용하여 사용하면 되는데, import 문은 다음과 같이 하나 혹은 복수의 모듈을 불러들일 수 있다.

 

① 모듈 import

from time import strftime

여러 개의 모듈을 import 할 경우 위 코드 처럼 모두 한 라인에 작성할 수 있지만 PEP8을 보면 모듈명은 한 라인에 하나씩 작성하는 것을 권장한다.

 

② from 모듈 import 함수

하나의 모듈.py에는 여러 개의 사용자 함수 및 내장 함수 등이 존재할 수 있는데, 이 중 하나의 함수만을 불러 사용하기 위해서는 아래와 같이 “from 모듈명 import 함수명”이라는 표현을 사용할 수 있다. 특정 함수명을 명시하지 않고 asterisk(*)를 사용할 수 있는데, 이렇게 하면 해당 모듈에 속한 모든 함수를 불러올 수 있다. 하지만, PEP8에선 권장하지 않는 표현이라고 나와있다.

from time import strftime

 

 

키워드

특별한 의미가 부여된 단어, '예약어'라고 봐도 됨. 무슨 말이냐면 파이썬이 만들어질 때 이미 사용하겠다고 예약해 놓은 것이므로 우리는 이 키워드를 쓸 수는 있지만 무작위로 쓰면 안됨.(규칙이란게 존재하지) 그래서 주의할 점이 키워드는 이미 있는 언어여서 내가 원하는 파일 이름을 만들때 키워드랑 같은 명칭이면 안됨. 키워드는 뭐가 있을까? ↓↓(더 늘어났을 수도 있음)

False None True and as assert
break class continue def del elif
else except finally for from global
if import in is lambda nonlocal
not or pass raise return try
while with yield      

근데 파이썬은 대소문자 구분하니까 그것도 주의 True(o), true(x)

(TMI. pycharm 등 코드 전용 에디터를 사용해 보면 코드 입력할 때 키워드들은 색상이 따로 들어가는 경우가 많음)

 

 

주석

주석(comment)은 프로그램의 진행에 전형 영향을 주지않는 코드를 말함.

방법은 주석하려는 글 앞에 #을 붙여주게 된다. 그럼 뒷부분이 주석 처리가 된다.

 

 

자료(=Literal, 리터럴)

값(value) 자체를 자료 및 리터럴 이라고 한다.

가끔 리터럴 거려서 뭔지 헷갈리게 함. 근데 그냥 값이라 보면 됨.

 

 

출력 관련: print()

가장 기본적인 출력은 print() 함수를 이용하는 것이다.

함수의 구조는 다음과 같다.

print(출력1, 출력2, ...)   #빨간색 부분은 변동성이 많은 부분

 

 

 

 

출처 : https://lineho.tistory.com/19, https://seongjaemoon.github.io/python/2018/04/06/python-course3.html

         

+ Recent posts