본문 바로가기

파이선 (python)

[Python] 함수/변수 및 클래스 네이밍 표기법

728x90

[ 개요 ]

* 프로그램에서 사용되는 함수명과 변수명 사용 규칙이 없으면 소스코드 작성자 스스로 혼돈이 생길 수 있다.

* 과거 파스칼 시절부터 프로그램을 했던 사람들이 최신 언어(java, python 등)로 전향한 사람들의 소스코드를 보면 네이밍 표기법이 이것저것 혼용되어 있거나 일관성이 없는 경우가 많다.

* 혼자만의 프로그램이라면 상관없으나 2명 이상에게 소스코드가 공유될 경우가 대부분임으로 나름의 네이밍 기준을 세워둘 필요가 있다. 본인의 색깔이랄까?

 

[ 네이밍 표기법 종류 ]

* 통상적으로 사용되고 있는 표기법에는 스네이크(Snake), 카멜(Camel), 파스칼(Pascla) 등이 있다.

 

< 스네이크 표기법 (Snake) >

* 단어와 단어 사이에 언더바( "_" )를 사용하는 표기법

*  함수명, 변수명, 데이터 타입 등에 활용

* 주로 Python 에서 사용

* ex) get_address, host_name

 

< 카멜 표기법 (Camel) >

* 소문자로 시작하고 이어지는 단어의 첫 글자는 대문자로 작성하는 표기법

* 주로 Java 언어에서 사용

* ex) getAddress, hostName

 

< 파스칼 표기법 (Pascal) >

* 모든 단어의 첫 글자를 대문자로 작성하는 표기법

* Java에서는 클래스명, 함수명 표기 시 활용

* Python에서는 클래스명 표기 시 활용

* ex) GetAddress, HostName

 

[ Python에서 표기법 정의 ]

* 네이밍 시 이름만 보고 해당 코드가 어떤 걸 의미하는지 추측이 가능하게 한다.

* 변수 및 함수는 Snake 표기법을 사용 (snake_case)

* 클래스는 Pascal 표기법을 사용 (PascalCase)

* 상수(한 번 선언하면 변하지 않는 값)는 모두 대문자로 표기

* 예시)

- 함수 : def get_address(x, y)

- 변수 : host_name = 12

- 클래스 : class NameRule

- 상수 : MAX_SIZE = 1024

 

* 기존에 만들어둔 Python 소스코드들을 일시에 변경할 수 없으니, 시간 될 때마다 위에 정의한 방법으로 바꾸어 나가기로 한다.

* 전역변수와 지역변수를 표기법으로 구분하는 방법도 고민중인데... 이건 쫌 무리인 듯... 

* 가능하면 지역변수를 사용하고 필요시 리턴받아서 사용하도록 한다.