Learning Python ฉบับที่ 6: ตำรา Python แกนภาษาสำหรับ Python 3.12
Learning Python ฉบับที่ 6 ของ Mark Lutz ปรับเนื้อหาใหม่ให้ตรงกับ Python 3.12 ขึ้นไปและตัด Python 2 ออก บทความนี้สรุปจากหน้าหนังสือบนเว็บไซต์ผู้เขียน และอ่านตัวอย่างบทที่ 39 Decorators ที่ผู้เขียนเผยแพร่บนเว็บไซต์

ขอบเขตของบทความ: สรุปจากหน้าหนังสือบนเว็บไซต์ของผู้เขียน หน้าโค้ดตัวอย่าง ข้อมูลบรรณานุกรมจาก Google Books และอ่านตัวอย่างบทที่ 39 Decorators หน้า 1031–1038 ที่ผู้เขียนเผยแพร่บนเว็บไซต์ ยังไม่ได้อ่านบทอื่น และไม่ได้เห็นสารบัญฉบับเต็ม
คนที่อยากใช้ Python ทำงานด้านข้อมูลหรือเขียนระบบเทรดมักเริ่มจากบทเรียนสั้น ๆ หรือโค้ดตัวอย่างของ library แล้วไปติดเมื่อต้องอ่านโค้ดคนอื่นที่ใช้ decorator, class หรือ generator หนังสือที่อธิบายแกนของภาษาเป็นระบบช่วยปิดช่องว่างตรงนี้ได้
Learning Python เป็นตำราแบบนั้น บทความนี้ดูว่าฉบับที่ 6 เปลี่ยนอะไรจากฉบับก่อน วิธีเขียนในบทที่ได้อ่านเป็นอย่างไร และเหมาะกับใคร
หนังสือเล่มนี้ว่าด้วยอะไร
Learning Python: Powerful Object-Oriented Programming ฉบับที่ 6 เขียนโดย Mark Lutz ตีพิมพ์โดย O'Reilly Media ข้อมูลบรรณานุกรมบน Google Books ระบุปี 2025 และ ISBN 9781098171261 ปกในโฟลเดอร์หนังสือเป็นปกฉบับที่ 6 ตรงกัน
หน้าหนังสือบนเว็บไซต์ผู้เขียน ระบุว่าฉบับสมบูรณ์ออกเมื่อ 25 กุมภาพันธ์ 2025 ฉบับพิมพ์ยาว 1,169 หน้า ส่วน ebook และฉบับออนไลน์ส่วนใหญ่ยาว 1,267 หน้า ผู้เขียนบอกว่าหนังสือยังคงเน้นแกนของภาษาและหลักคิดพื้นฐานที่ผู้อ่านนำไปสร้างวิธีแก้ปัญหาเองได้
ฉบับที่ 6 เปลี่ยนอะไร
ตามหน้าหนังสือของผู้เขียน (learning-python.com):
ตัด Python 2.X ออก และปรับเนื้อหาให้ตรงกับ Python 3.12 ขึ้นไป
เพิ่มหัวข้อใหม่ของ Python 3 เช่น f-string, assignment expression, คำสั่ง
match, type hint, async coroutine, exception group และ positional-only argumentให้ความสำคัญกับแพลตฟอร์มนอก Windows มากขึ้น รวมถึงสมาร์ตโฟน
สั้นลง ฉบับ ebook สั้นลงราว 350 หน้า และฉบับพิมพ์ราว 450 หน้าเมื่อเทียบกับฉบับที่ 5
ย้ายสองบทขั้นสูงออนไลน์สำหรับฉบับพิมพ์ คือบทที่ 38 Managed Attributes และบทที่ 39 Decorators ซึ่งยังอยู่ครบใน ebook (หน้าบทออนไลน์)
เนื้อหาครอบคลุมหัวข้ออะไร
ยังไม่ได้เห็นสารบัญฉบับเต็ม หน้า O'Reilly ปฏิเสธการเข้าถึงระหว่างค้นข้อมูล สิ่งที่ยืนยันได้มีดังนี้
ชุด โค้ดตัวอย่าง แยกโฟลเดอร์ตามบท โฟลเดอร์ที่มีอยู่ไล่ตั้งแต่บทที่ 2 ถึงบทที่ 41 และภาคผนวก A กับ B (รายการโฟลเดอร์) แสดงว่าหนังสือมีอย่างน้อย 41 บท
คำอธิบายบน Google Books ระบุหัวข้อหลัก เช่น ชนิดข้อมูลในตัวอย่าง string, list, dictionary และ file, ฟังก์ชันและ functional programming, module และ package, exception, object-oriented programming ด้วย class และเครื่องมือขั้นสูงอย่าง decorator, descriptor และ metaclass
บทที่ 39 อ้างถึงบทอื่นไว้หลายจุด เช่น บทที่ 29 เรื่อง abstract superclass บทที่ 31 เรื่อง delegation บทที่ 32 เรื่อง property และ static/class method และบทถัดไปเรื่อง metaclass
สิ่งที่เห็นจากตัวอย่างบทที่ 39 Decorators
บทที่ 39 เปิดด้วยการบอกว่าเป็นหัวข้อค่อนข้างสูงที่คนสร้างเครื่องมือจะสนใจมากกว่าคนเขียนแอปพลิเคชัน แต่เพราะ framework ยอดนิยมใช้ decorator มากขึ้น ความเข้าใจพื้นฐานจึงช่วยให้ผู้ใช้ไม่มองมันเป็นกล่องดำ ผู้เขียนยังวางบทนี้เป็นกรณีศึกษาที่ตัวอย่างใหญ่กว่าบทก่อน ๆ (หน้า 1031)
แนวทางอธิบายในหน้าที่อ่านคือเริ่มจากกลไกก่อน syntax ผู้เขียนอธิบายว่า decorator คือการผูกชื่อฟังก์ชันหรือคลาสใหม่โดยอัตโนมัติเมื่อจบคำสั่ง def หรือ class แล้วแสดงว่า @decorator เหนือ def F เทียบเท่ากับ F = decorator(F) (หน้า 1034–1035) จากนั้นจึงแสดงสองรูปแบบที่ใช้บ่อย คือ nested function ที่คืน wrapper และคลาสที่มี __call__ พร้อมชี้จุดที่มักพลาด คือ decorator แบบคลาสใช้กับ method ไม่ได้ตรง ๆ เพราะ self ของ __call__ เป็น instance ของ decorator ไม่ใช่ของคลาสที่ถูกตกแต่ง (หน้า 1036–1037)
ผู้เขียนยังพูดถึงข้อเสียด้วย เช่น wrapper อาจเปลี่ยนชนิดของ object และเพิ่มการเรียกฟังก์ชัน (หน้า 1033) ซึ่งเป็นเรื่องที่คนเขียนโค้ดที่ต้องการความเร็วควรรู้
ตัวอย่างประกอบ (ของบทความนี้ ไม่ได้มาจากหนังสือ): ถ้าใช้ library ที่ให้เขียน @lru_cache เหนือฟังก์ชันคำนวณ indicator ความเข้าใจว่าบรรทัดนั้นคือ f = lru_cache(f) ช่วยให้ตามได้ว่าทำไมฟังก์ชันที่ได้กลับมาจึงมีพฤติกรรมต่างจากเดิม
เหมาะกับใคร และใครควรเริ่มจากเล่มอื่นก่อน
เหมาะ กับคนที่ต้องการเข้าใจแกนภาษา Python อย่างละเอียด ทั้งคนเริ่มเขียนโปรแกรมและนักพัฒนาที่มาจากภาษาอื่น ตามที่คำอธิบายบน Google Books ระบุ
เหมาะ กับคนที่ใช้ pandas หรือ framework ต่าง ๆ อยู่แล้ว แต่อยากอ่านโค้ดที่ใช้ class, decorator และ module ได้คล่องขึ้น
อาจไม่ตรงความต้องการ ถ้าต้องการหนังสือเรื่องการวิเคราะห์ข้อมูลหรือการเงินโดยตรง หน้าผู้เขียนระบุว่าหนังสือเน้นแกนภาษา และคำอธิบายหนังสือไม่ได้กล่าวถึง library ด้านข้อมูล
ความยาวกว่าพันหน้าเหมาะกับการอ่านเป็นตำราอ้างอิงมากกว่าอ่านจบในเวลาสั้น
ข้อจำกัดของข้อมูลที่ใช้ในบทความนี้
อ่านเฉพาะบทที่ 39 หน้า 1031–1038 จากไฟล์ที่ผู้เขียนเผยแพร่ ไม่ได้อ่านบทอื่น
ไม่ได้เห็นสารบัญฉบับเต็ม จำนวนบทอนุมานจากชื่อโฟลเดอร์โค้ดตัวอย่าง ซึ่งไม่มีโฟลเดอร์ของบทที่ 1, 5, 6 และ 8
จำนวนหน้าต่างกันตามรูปแบบ Google Books แสดง 1172 หน้า ส่วนผู้เขียนระบุ 1,169 หน้าสำหรับฉบับพิมพ์และ 1,267 หน้าสำหรับ ebook ส่วนใหญ่
ไม่ได้รันโค้ดตัวอย่างของหนังสือ
แหล่งอ้างอิง
About Learning Python, 6th Edition · Mark Lutz · วันออก จำนวนหน้า สิ่งที่เปลี่ยนจากฉบับที่ 5
Chapters moved online · Mark Lutz · รายชื่อบทที่ย้ายออนไลน์
Chapter 39: Decorators (PDF) · Mark Lutz / O'Reilly · บทที่ 39 หน้า 1031–1038
Learning Python 6th Edition examples · Mark Lutz · คำอธิบายชุดโค้ดตัวอย่าง
LP6E examples folder · Mark Lutz · รายชื่อโฟลเดอร์ตามบท
Learning Python: Powerful Object-Oriented Programming · Google Books · ข้อมูลบรรณานุกรมและคำอธิบายหนังสือ
หนังสือที่กล่าวถึงในบทความนี้

Learning Python
Mark Lutz
ฉบับที่ 6 ปี 2025 เน้นแกนภาษา Python 3.12 ขึ้นไป ตั้งแต่ชนิดข้อมูลพื้นฐานจนถึง decorator และ metaclass พร้อมโค้ดตัวอย่างแยกตามบท
บทความนี้อ่านจบได้ในตัวเอง หนังสือด้านบนคือจุดต่อยอดสำหรับผู้ที่ต้องการศึกษาลึกขึ้น
อ่านต่อ
25 ตุลาคม 2569
Operating Systems: Three Easy Pieces: ตำรา OS ที่อ่านฟรีได้ทีละบท เหมาะกับใครตำราระบบปฏิบัติการของ Remzi และ Andrea Arpaci-Dusseau แบ่งเป็นสามแกน virtualization, concurrency และ persistence บทความนี้อ่านบางบทจากฉบับออนไลน์ที่ผู้เขียนเผยแพร่ฟรี ได้แก่ คำนำ บทที่ 2, 26 และ 28
25 ตุลาคม 2569
Inside the Machine: ทำความเข้าใจการทำงานของ CPU ผ่านภาพและการเปรียบเทียบหนังสือของ Jon Stokes จาก No Starch Press อธิบาย microprocessor architecture ตั้งแต่ pipelining ถึง Core 2 Duo บทความนี้สรุปจากสารบัญ คำนำ บทนำ และบทที่ 4 ที่สำนักพิมพ์เปิดให้อ่านฟรี
25 ตุลาคม 2569
The Art of R Programming: เขียน R ให้เป็นโปรแกรม ไม่ใช่แค่สั่งคำนวณ statisticsหนังสือของ Norman Matloff ที่สอน R ในมุมการพัฒนาซอฟต์แวร์ ตั้งแต่ vector และ data frame ไปจนถึง debugging การเพิ่มสมรรถนะ และ parallel R บทความนี้สรุปจากสารบัญและบทที่ 3 ที่ No Starch Press เปิดให้อ่านตัวอย่าง
