파이썬 예약어 확인하기
파이썬에서 변수명, 함수명, 클래스명 등을 작성할 때 여러 규칙이 있지만 그중 이미 정해진 예약어는 사용할 수 없다.
그럼 파이썬에서 식별자(변수명, 함수명, 클래스명 등)로 사용할 수 없는 예약어에 대해서 알아보도록 하자.
1. 파이썬 예약어 란?
파이썬에서 예약어(Reserved Keyword)란 변수명, 함수명, 클래스명 등으로 사용할 수 없이 미리 정해진 키워드를 말한다.
파이썬에 버전에 따라 예약어가 틀릴 수 있고 추후 버전 업데이트 시에도 추가가 될 수 있다.
그로 인해서 버전에 따라 기존 식별자(변수명, 함수명, 클래스명 등)가 예약어로 설정된 경우 사용이 불가할 수도 있다.
2. 예약어 종류
현재 파이썬 3.9.7 버전에서 확인해보면 총 36개가 존재하고 있다.
파이썬 버전에 따라서 예약어의 종류는 변경 될 수 있으며, 해당 내용은 3.9.7 버전을 기준으로 작성 하도록 하겠다.
36개의 예약어는 아래 표와 같으며, "False, None, True, __peg_parser__"를 제외하고는 모두 소문자로 되어 있다.
False | None | True | __peg_parser__ | 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 |
3. 예약어 확인하기
버전마다 예약어가 추가 / 삭제가 되면서 사용이 불가할 수 도 있는 경우를 대비해서 예약어를 확인하는 방법에 대해서 알아보자.
# Python 예약어 확인하기
Python 3.9.7 (default, Oct 13 2021, 06:44:56)
[Clang 12.0.0 (clang-1200.0.32.29)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from keyword import kwlist
>>> print(kwlist)
['False', 'None', 'True', '__peg_parser__', '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']
>>> print(len(kwlist))
36
>>> type(kwlist)
<class 'list'>
간단하게 keyword 모듈의 kwlist를 통해서 쉽게 확인 할 수 있다.
예약어를 print 문을 통해서 list 형식으로 출력하고 갯수도 세어 보았다.
4. 예제 Code
이번에는 해당 내용을 이용하여 간단하게 확인을 할 수 있는 방법에 대해서 작성해 보았다.
# Python 예약어 확인하기
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import platform
from keyword import kwlist
def check_kwlist(word):
if word in kwlist:
return True
return False
if __name__ == '__main__':
word1 = 'def'
word2 = 'defa'
print('파이썬 버전은? : {version}'.format(version=platform.python_version()))
print('"{word}"는 파이썬 예약어 인가요? : {check}'.format(word=word1, check=check_kwlist(word1)))
print('"{word}"는 파이썬 예약어 인가요? : {check}'.format(word=word2, check=check_kwlist(word2)))
[OUTPUT]
파이썬 버전은? : 3.9.7
"def"는 파이썬 예약어 인가요? : True
"defa"는 파이썬 예약어 인가요? : False
간단하게 위에 나온 예제 파일은 Github에 올려 놓았다.
해당 내용을 따라 해 보면 금방 이해하고 익숙해질 것이다.
🌵댓글