หากต้องการดูรายการคีย์เวิร์ด Python (คำสงวน) ให้ใช้คีย์เวิร์ด

ธุรกิจ

รายการคำหลัก Python (คำที่สงวนไว้) สามารถพบได้ในโมดูลคำหลักของไลบรารีมาตรฐาน

คำหลัก (คำสงวน) ไม่สามารถใช้เป็นชื่อ (ตัวระบุ) สำหรับชื่อตัวแปร ชื่อฟังก์ชัน ชื่อคลาส ฯลฯ

ข้อมูลต่อไปนี้มีให้ที่นี่

  • รับรายการคำหลัก Python (คำสงวน):keyword.kwlist
  • ตรวจสอบว่าสตริงเป็นคีย์เวิร์ด (คำสงวน):keyword.iskeyword()
  • ความแตกต่างระหว่างคำสำคัญและคำสงวน

ดังที่กล่าวไว้ในส่วนที่แล้ว คำหลักและคำสงวนเป็นแนวคิดที่ต่างกันโดยสิ้นเชิง

โค้ดตัวอย่างต่อไปนี้ใช้ Python 3.7.3 โปรดทราบว่าคำหลัก (คำที่สงวนไว้) อาจแตกต่างกันไปขึ้นอยู่กับรุ่น

รับรายการคำหลัก Python (คำที่สงวนไว้): keyword.kwlist

keyword.kwlist มีรายการคำหลัก (คำสงวน) ใน Python

ในตัวอย่างต่อไปนี้ 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()

คุณสามารถตรวจสอบว่าสตริงเป็นคีย์เวิร์ด (คำสงวน) ได้หรือไม่โดยใช้คีย์เวิร์ด.iskeyword()

เมื่อคุณระบุสตริงที่คุณต้องการตรวจสอบเป็นอาร์กิวเมนต์ สตริงจะส่งกลับค่าจริงหากเป็นคีย์เวิร์ด และเป็นเท็จหากไม่ใช่

print(keyword.iskeyword('None'))
# True

print(keyword.iskeyword('none'))
# False

ความแตกต่างระหว่างคำสำคัญและคำสงวน

แม้ว่าเราจะใช้คำเหล่านี้โดยไม่แยกแยะ แต่การพูดอย่างเคร่งครัด คำหลักและคำสงวนเป็นแนวคิดที่แตกต่างกันสองประการ

  • คำสำคัญ: คำที่มีความหมายพิเศษในข้อกำหนดภาษา
  • คำสงวน: คำที่ตรงตามกฎสำหรับตัวระบุเป็นสตริง แต่ไม่สามารถใช้เป็นตัวระบุได้

ดูลิงก์ต่อไปนี้สำหรับรายละเอียดเพิ่มเติม รวมถึงตัวอย่าง เช่น goto เป็นคำสงวนแต่ไม่ใช่คีย์เวิร์ดใน Java

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” และ “keyword” มักใช้สลับกันได้ – หนึ่งอาจกล่าวได้ว่าคำสงวนคือ “reserved for use as a keyword” – และการใช้อย่างเป็นทางการแตกต่างกันไปในแต่ละภาษา สำหรับบทความนี้เราแยกความแตกต่างดังกล่าวข้างต้น
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

ใน Python (อย่างน้อยใน Python 3.7) คำหลักทั้งหมดเป็นคำสงวนและไม่มีคำสงวนอื่นใดนอกจากคำหลัก ดังนั้นจึงปลอดภัยที่จะใช้โดยไม่สร้างความแตกต่างใดๆ

ดูบทความต่อไปนี้สำหรับชื่อที่สามารถใช้เป็นตัวระบุได้