لیستی از کلمات کلیدی پایتون (کلمات رزرو شده) را می توان در ماژول کلمات کلیدی کتابخانه استاندارد یافت.
کلمات کلیدی (کلمات رزرو شده) را نمی توان به عنوان نام (شناسه) برای نام متغیرها، نام توابع، نام کلاس ها و غیره استفاده کرد.
- مقالات مرتبط:نامهای معتبر و نامعتبر و قراردادهای نامگذاری برای شناسهها (مثلاً نام متغیرها) در پایتون
اطلاعات زیر در اینجا ارائه شده است.
- دریافت لیستی از کلمات کلیدی پایتون (کلمات رزرو شده):
keyword.kwlist
- بررسی کنید که آیا رشته یک کلمه کلیدی است (کلمه رزرو شده):
keyword.iskeyword()
- تفاوت بین کلمات کلیدی و کلمات رزرو شده
همانطور که در بخش آخر ذکر شد، کلمات کلیدی و کلمات رزرو شده مفاهیم کاملاً متفاوتی هستند.
کد نمونه زیر از Python 3.7.3 استفاده می کند. توجه داشته باشید که کلمات کلیدی (کلمات رزرو شده) ممکن است بسته به نسخه متفاوت باشد.
دریافت لیستی از کلمات کلیدی پایتون (کلمات رزرو شده): keyword.kwlist
کلمه کلیدی.kwlist حاوی لیستی از کلمات کلیدی (کلمات رزرو شده) در پایتون است.
در مثال زیر از pprint برای آسانتر خواندن خروجی استفاده شده است.
import keyword
import pprint
print(type(keyword.kwlist))
# <class 'list'>
print(len(keyword.kwlist))
# 35
pprint.pprint(keyword.kwlist, compact=True)
# ['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']
عناصر لیست رشته ها هستند.
print(keyword.kwlist[0])
# False
print(type(keyword.kwlist[0]))
# <class 'str'>
اگر سعی کنید از این نام ها به عنوان شناسه (نام متغیرها، نام توابع، نام کلاس ها و غیره) استفاده کنید، با خطا مواجه خواهید شد.
# True = 100
# SyntaxError: can't assign to keyword
بررسی کنید که آیا رشته یک کلمه کلیدی است (کلمه رزرو شده): keyword.iskeyword()
با استفاده از keyword.iskeyword() می توانید بررسی کنید که آیا یک رشته یک کلمه کلیدی (کلمه رزرو شده) است یا خیر.
زمانی که رشته ای را که می خواهید بررسی کنید به عنوان آرگومان مشخص می کنید، اگر کلمه کلیدی باشد true و اگر نباشد false را برمی گرداند.
print(keyword.iskeyword('None'))
# True
print(keyword.iskeyword('none'))
# False
تفاوت بین کلمات کلیدی و کلمات رزرو شده
اگرچه ما بدون هیچ گونه تمایزی از آنها استفاده می کنیم، اما به طور دقیق، کلمات کلیدی و کلمات رزرو شده دو مفهوم متفاوت هستند.
- کلیدواژه ها: واژه هایی با معنای خاص در مشخصات زبان
- کلمات رزرو شده: کلماتی که قوانین شناسه ها را به عنوان رشته رعایت می کنند اما نمی توانند به عنوان شناسه استفاده شوند.
برای جزئیات بیشتر به لینک های زیر مراجعه کنید، از جمله مثال هایی مانند goto یک کلمه رزرو شده است اما یک کلمه کلیدی در جاوا نیست.
In a computer language, a reserved word (also known as a reserved identifier) is a word that cannot be used as an identifier, such as the name of a variable, function, or label – it is “reserved from use”. This is a syntactic definition, and a reserved word may have no user-define meaning.
یک مفهوم نزدیک و اغلب در هم آمیخته یک کلمه کلیدی است که کلمه ای با معنای خاص در یک زمینه خاص است. این یک تعریف معنایی است. در مقابل، نامهایی که در یک کتابخانه استاندارد وجود دارند، اما در زبان تعبیه نشدهاند، کلمات یا کلیدواژههای رزرو شده در نظر گرفته نمیشوند. اصطلاحات “کلمه رزرو شده” و “کلید کلیدی” اغلب به جای یکدیگر استفاده می شوند – ممکن است بتوان گفت که یک کلمه رزرو شده “برای استفاده به عنوان کلمه کلیدی رزرو شده است” – و استفاده رسمی از زبانی به زبان دیگر متفاوت است. برای این مقاله ما مانند بالا متمایز می کنیم.
Reserved word – Wikipedia
Keywords have a special meaning in a language, and are part of the syntax.
کلمات رزرو شده کلماتی هستند که نمی توانند به عنوان شناسه (متغیرها، توابع و غیره) استفاده شوند، زیرا توسط زبان رزرو شده اند.
language agnostic – What is the difference between “keyword” and “reserved word”? – Stack Overflow
در پایتون (حداقل از پایتون 3.7) همه کلمات کلیدی کلمات رزرو شده هستند و هیچ کلمه رزرو شده دیگری به جز کلمات کلیدی وجود ندارد، بنابراین استفاده از آنها بدون هیچ گونه تمایزی بی خطر است.
همچنین برای اسامی که می توانند به عنوان شناسه استفاده شوند به مقاله زیر مراجعه کنید.