รายการคำหลัก 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) คำหลักทั้งหมดเป็นคำสงวนและไม่มีคำสงวนอื่นใดนอกจากคำหลัก ดังนั้นจึงปลอดภัยที่จะใช้โดยไม่สร้างความแตกต่างใดๆ
ดูบทความต่อไปนี้สำหรับชื่อที่สามารถใช้เป็นตัวระบุได้