Python에서 식별자(Identifier)란 클래스, 함수, 변수 등 다양한 개체(entity)에 붙이는 이름을 의미합니다. 식별자를 통해 서로 다른 개체를 구분하고 코드에서 참조할 수 있습니다. 이 글에서는 Python에서 함수 이름이나 변수 이름으로 어떤 문자를 사용할 수 있는지, 그리고 어떤 규칙을 지켜야 하는지 자세히 알아보겠습니다.
Python 식별자 작성 규칙
Python 식별자는 다음 세 가지 요소의 조합으로 만들 수 있습니다.
- 영문 소문자 (a ~ z)
- 영문 대문자 (A ~ Z)
- 숫자 (0 ~ 9)
- 밑줄(Underscore, _)
예를 들어 myClass, var_3, print_to_screen 같은 이름은 모두 유효한 식별자입니다.
1. 숫자로 시작할 수 없습니다
식별자는 반드시 영문자 또는 밑줄(_)로 시작해야 하며, 숫자로 시작하는 것은 허용되지 않습니다. 따라서 2variable은 잘못된 이름이지만, variable2처럼 숫자가 뒤에 오는 경우는 전혀 문제없습니다.
2. 예약어(Keyword)는 사용할 수 없습니다
Python에서 이미 문법적으로 예약된 키워드는 식별자로 사용할 수 없습니다. 예를 들어 global은 Python의 키워드이므로 변수 이름으로 사용하면 문법 오류(SyntaxError)가 발생합니다.
예제
global = "syntax" print(global)
출력 결과
File "identifiers1.py", line 1
global = "syntax"
^
SyntaxError: invalid syntax
설명: 위 코드는 global이라는 키워드를 일반 변수처럼 사용해 문자열 값을 할당하려고 했기 때문에 실행 시점에 문법 오류가 발생합니다. 이처럼 키워드는 식별자 용도로 절대 사용할 수 없습니다.
3. 특수 기호(!, @, #, $, % 등)는 사용할 수 없습니다
식별자에는 느낌표(!), 골뱅이(@), 샵(#), 달러($), 퍼센트(%) 같은 특수 기호를 포함할 수 없습니다.
예제
$local = 5 print($local)
출력 결과
File "identifiers2.py", line 1
$local = 5
^
SyntaxError: invalid syntax
설명: 위 코드는 변수 이름에 특수 문자인 $를 사용했기 때문에 실행 시 문법 오류가 발생합니다. 특수 기호는 연산자나 다른 문법적 목적으로만 사용되며, 식별자의 일부가 될 수 없습니다.
추가로 알아두면 좋은 식별자 팁
- 대소문자를 구분합니다.
Variable과variable은 서로 다른 식별자로 취급됩니다. - 밑줄(_)로 시작하는 이름은 관례상 내부용(private)임을 나타내는 데 자주 사용됩니다. 예를 들어
_internal_var,__private_method등이 있습니다. - Python 3에서는 유니코드 문자도 허용됩니다. 한글 변수 이름(예:
변수1 = 10)도 문법적으로 유효하지만, 협업과 가독성을 위해 영문 식별자를 사용하는 것이 일반적입니다. - 길이 제한은 없지만, 너무 긴 이름보다는 의미를 명확히 전달하는 적절한 길이의 이름을 사용하는 것이 좋습니다.
정리
Python의 함수 이름과 변수 이름(식별자)은 영문 대소문자, 숫자, 밑줄(_)의 조합으로 작성해야 하며, 숫자로 시작할 수 없고, 키워드와 특수 기호는 사용할 수 없습니다. 이 규칙만 지키면 어떤 이름이든 자유롭게 사용할 수 있으니, 읽기 쉽고 의미가 분명한 식별자를 작성하는 습관을 들이는 것이 좋습니다.