프로그래밍 공부가 처음이라면 변수와 함수 이름을 짓는 데에 크게 고민한 적이 없으실텐데요. 이름 규칙을 지키지 않아도 사실 프로그램 작성에는 아무런 영향을 주지 않습니다. 하지만,,, 공동 프로젝트라든가 회사에서 아무렇게나 변수 명과 함수 명을 지으면 싸움이 날 수도 있어요. 🤼♂️
모든 파이썬 개발자들이 지켜서 사용하는 식별자 규칙에 대해 알아보고, 식별자를 보았을 때 해당 식별자가 무엇을 하는 것인지 한 번에 이해할 수 있도록 정리했습니다.
🧐식별자(identifier)
식별자는 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어입니다. 주로 변수 또는 함수 이름 등으로 사용됩니다. 식별자는 기본적으로 다음과 같은 규칙을 지켜 만들어야 합니다.
- 키워드*를 사용하면 안 됩니다.
- 특수 문자는 언더 바(_ )만 허용됩니다.
- 숫자로 시작하면 안 됩니다.
- 공백을 포함할 수 없습니다.
- + 가급적 알파벳을 사용해주세요.
- + 유의미한 뜻으로 짓되 누구나 알 수 있어야 합니다.
위 규칙에 맞는 단어는 모두 식별자로 사용할 수 있습니다. 예를 들어, 다음 표에서 왼쪽의 단어는 모두 식별자로 사용할 수 있지만, 오른쪽의 단어는 모두 식별자로 사용할 수 없습니다. 식별자로 사용할 수 없는 이유를 꼭 확인하세요.
식별자를 만들 때는 한글, 한자, 일본어와 같은 전 세계의 언어를 모두 사용할 수 있지만, 알파벳을 사용하는 것이 관례입니다. 또한 a, b처럼 의미 없는 단어보다 file, output처럼 의미 있는 단어를 사용하는 것이 좋습니다.
🙋♀️여기서 잠깐) 키워드란 무엇인가요?
키워드keyword는 특별한 의미가 부여된 단어로, 파이썬이 만들어질 때 이미 사용하겠다고 예약해 놓는 것입니다. 사용자가 키워드인지 아닌지를 구분해야 하는 이유는 프로그래밍 언어에서 사용자가 이름을 정할 때 키워드를 사용하면 안 되기 때문입니다. 혹시 이후에 사용하는 단어가 키워드인지 아닌지 꼭 확인해야 할 경우가 있을 것입니다. 그때는 다음과 같은 코드로 파이썬의 키워드를 확인해 보세요.
아래와 같이 파이썬의 키워드가 출력됩니다. [‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘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’] |
🐍스네이크 케이스와 🐪캐멀 케이스
식별자에는 공백을 사용할 수 없습니다. 다음과 같은 식별자의 의미가 한 번에 떠오르시나요?
itemlist loginstatus characterhp rotateangle |
조금 생각해 보면 이해할 수 있겠지만, 공백이 없어서 재빠르게 이해하기 힘듭니다. 그래서 개발자들은 다음과 같은 두 가지 방법을 사용해 식별자를 쉽게 이해할 수 있도록 했습니다.
첫째, 단어 사이에 언더 바(_ ) 기호를 붙여 식별자를 만듭니다.
예를 들면 itemlist를 item_list로 쓰는 것입니다. 이러한 것을 🐍스네이크 케이스(snake_case)라고 합니다.
둘째, 단어들의 첫 글자를 대문자로 만들어 식별자를 만듭니다.
예를 들면 itemlist를 ItemList로 쓰는 것입니다. 이러한 것을 🐪캐멀 케이스(CamelCase)라고 합니다.
다음 예를 살펴보면 이전보다 훨씬 쉽게 이해할 수 있습니다.
식별자에 공백이 없는 경우 | 단어 사이에 _ 기호를 붙인 경우 🐍스네이크 케이스🐍 |
단어 첫 글자를 대문자로 만든 경우 🐪캐멀 케이스🐪 |
itemlist loginstatus characterhp rotateangle |
item_list login_status character_hp rotate_angle |
ItemList LoginStatus CharacterHp RotateAngle |
참고로 스네이크 케이스는 글자들이 뱀처럼 연결된다고 해서, 캐멀 케이스는 글자들이 낙타 같다고 해서 붙은 이름입니다. 대부분의 프로그래밍 언어는 스네이크 케이스와 캐멀 케이스 둘 중의 하나만 사용하는 경우가 많은데, 파이썬은 두 가지를 모두 사용합니다.
🧐식별자를 구분하는 Tip
원래 캐멀 케이스는 ‘첫 번째 글자를 대문자로 적는다’와 ‘첫 번째 글자를 소문자로 적는다’로 구분합니다. 하지만 파이썬에서는 ‘첫 번째 글자를 소문자로 적는다’라는 캐멀 케이스는 사용하지 않습니다. 예를 들면 다음과 같습니다.
- 캐멀 케이스 유형 1: PrintHello → 파이썬에서 사용🙆♀️
- 캐멀 케이스 유형 2: printHello → 파이썬에서 사용하지 않음🙅♀️
따라서 파이썬에서는 첫 번째 글자가 소문자라면 무조건 스네이크 케이스입니다. 예를 들어, 다음과 같은 식별자는 모두 스네이크 케이스로 적힌 단어입니다.
print input list str map filter |
반대로 첫 번째 글자가 대문자라면 무조건 캐멀 케이스입니다. 예를 들어, 다음과 같은 식별자는 모두 캐멀 케이스로 적힌 단어입니다.
Animal Customer |
캐멀 케이스로 작성되어 있으면 클래스이며, 스네이크 케이스로 작성되어 있으면 함수 또는 변수입니다. 그리고 뒤에 괄호가 붙어 있으면 함수이고, 괄호가 없으면 변수입니다. 단순한 구분이라 약간의 예외가 있지만, 대부분의 경우에는 이처럼 구분해도 문제 없습니다.
🙋♀️여기서 잠깐 퀴즈)
다음 코드에서 굵게 표시된 식별자가 클래스인지, 변수인지, 함수인지 구분해 보세요!
퀴즈의 정답은 포스팅 하단에서 공개합니다.
- print()
- list()
- soup.select()
- math.pi
- math.e
- class Animal:
- BeautifulSoup()
지금까지 식별자의 정의와 규칙 그리고 식별자를 구분하는 꿀팁에 대해 알아보았습니다. 스크롤을 조금만 더 내려서 퀴즈의 정답을 확인해보세요!
출간 후부터 현재까지 독자의 꾸준한 사랑을 받는 파이썬 기초 도서!
입문자 맞춤형 체계적인 반복 학습과 154개의 예제로 실전 감각을 기를 수 있어 프로그래밍이 처음인 사람부터 신입 개발자도 보는 도서입니다 🙂
📑혼공 용어 노트: [용어 노트]를 클릭하여 무료 PDF 다운로드 받으세요.
1️⃣탄: 파이썬 기초, 자료형, 조건문 용어 정리
2️⃣탄: 파이썬 반복문, 함수, 예외처리 용어 정리
3️⃣탄: 파이썬 모듈, 클래스 용어 정리
🙆♀️퀴즈 정답 공개)
1. 스네이크 케이스 뒤에 괄호가 붙어 있으므로 함수입니다.
2. 스네이크 케이스 뒤에 괄호가 붙어 있으므로 함수입니다.
3. 스네이크 케이스 뒤에 괄호가 붙어 있으므로 함수입니다.
4. 스네이크 케이스 뒤에 괄호가 없으므로 변수입니다.
5. 스네이크 케이스 뒤에 괄호가 없으므로 변수입니다.
6. 캐멀 케이스이므로 클래스입니다.
7. 캐멀 케이스이므로 일단 클래스입니다. 그런데 뒤에 괄호가 있습니다. 클래스 생성자라고 부르는 특이한 형태의 함수입니다. 일단 BeautifulSoup이라는 식별자는 클래스라는 것을 알 수 있습니다.
모두 맞히셨나요? 모든 파이썬 개발자들이 지켜서 사용하는 규칙이고, 이러한 규칙이 있어야 식별자를 보았을 때 해당 식별자가 무엇을 하는 것인지 한 번에 이해할 수 있습니다. 따라서 꼭 지켜 주세요! 🤙
안녕하세요.
첫글자가 대문자로 시작하는 것은 Pascal Case로 알고있는데 한번 검토해주시면 좋을 것 같아요.