Fluent Python ฉบับแรก: สำหรับคนที่เขียน Python ได้แล้วและอยากเขียนให้เป็นธรรมชาติขึ้น
หนังสือของ Luciano Ramalho (O'Reilly, 2015) ว่าด้วยการเขียน Python 3 แบบ idiomatic ตั้งแต่ data model ไปจนถึง asyncio และ metaclass บทความนี้สรุปจากคำอธิบายหนังสือ ข้อมูลแคตตาล็อก และคลังโค้ดทางการของฉบับแรก

ขอบเขตของบทความ: แนะนำขอบเขตเนื้อหาจากสารบัญโดยอ้อม คือชื่อโฟลเดอร์ในคลังโค้ดทางการของฉบับแรก ร่วมกับคำอธิบายหนังสือและข้อมูลแคตตาล็อก ยังไม่ได้อ่านเนื้อหาของบทใด และไม่พบสารบัญจากสำนักพิมพ์ที่เปิดได้
คนที่ย้ายมาจากภาษาอื่นมักเขียน Python ได้เร็ว แต่ยังเขียนด้วยรูปแบบที่ติดมาจากภาษาเดิม เช่น เขียน getter/setter แบบ Java หรือวนลูปด้วย index แทนการใช้ความสามารถของภาษาเอง ผลคือโค้ดยาวกว่าที่ควร หนังสือเล่มนี้ตั้งใจแก้ปัญหานั้น
หนังสือเล่มนี้ว่าด้วยอะไร
Fluent Python: Clear, Concise, and Effective Programming เขียนโดย Luciano Ramalho ฉบับแรก ตีพิมพ์โดย O'Reilly วันที่ 20 สิงหาคม 2015 ความยาว 792 หน้า ISBN ฉบับพิมพ์ 9781491946008 (Open Library)
คำอธิบายหนังสือบน Google Books ระบุว่าเป็นคู่มือเชิงปฏิบัติสำหรับเขียน Python แบบ idiomatic โดยใช้ฟีเจอร์ที่ดีและมักถูกมองข้ามของภาษา กลุ่มผู้อ่านคือโปรแกรมเมอร์ที่มีประสบการณ์ซึ่งพยายามดัด Python ให้เข้ากับรูปแบบจากภาษาอื่น และอยากใช้ Python 3 ได้คล่องจริง
เนื้อหาครอบคลุมหัวข้ออะไร
คำอธิบายหนังสือแบ่งหัวข้อใหญ่เป็นหกเรื่อง:
Python data model การใช้ special method ให้ object ทำงานสอดคล้องกับส่วนอื่นของภาษา
Data structures ใช้ built-in type ให้เต็มที่ และเข้าใจความต่างของ text กับ bytes ในยุค Unicode
Functions as objects มองฟังก์ชันเป็น first-class object และผลต่อ design pattern ที่ใช้กันทั่วไป
Object-oriented idioms เรื่อง reference, mutability, interface, operator overloading และ multiple inheritance
Control flow context manager, generator, coroutine และ concurrency ด้วย
concurrent.futuresและasyncioMetaprogramming property, attribute descriptor, class decorator และ metaclass
โครงบทจากคลังโค้ดทางการ
คลังโค้ด fluentpython/example-code ระบุว่าเป็นโค้ดตัวอย่างของฉบับแรก (O'Reilly, 2015) แยกโฟลเดอร์ตามบทตั้งแต่ 01-data-model ถึง 21-class-metaprog ซึ่งน่าจะตรงกับ 21 บท ตัวอย่างชื่อโฟลเดอร์ เช่น 03-dict-set, 04-text-byte, 07-closure-deco, 11-iface-abc, 14-it-generator, 16-coroutine, 18-asyncio และ 20-descriptor บทที่ 17 และ 18 มีโฟลเดอร์รุ่น py3.7 เพิ่มด้วย ชื่อโฟลเดอร์ไม่ใช่สารบัญ จึงใช้ดูลำดับหัวข้อคร่าว ๆ เท่านั้น คลังนี้ใช้สัญญาอนุญาต MIT
ฉบับแรกกับฉบับที่ 2
README ของคลังโค้ดฉบับแรกแจ้งว่าคลังถูก archive แล้วและให้ไปที่คลังของฉบับที่ 2 แทน ส่วนเว็บไซต์ประกอบของผู้เขียนตอนนี้เป็นของฉบับที่ 2 (fluentpython.com) บทความนี้พูดถึงฉบับแรกตามปกในโฟลเดอร์หนังสือ ถ้าต้องการเนื้อหาที่ตาม Python รุ่นใหม่กว่า ควรตรวจฉบับที่ 2 แยกต่างหาก
พื้นฐานที่ควรมีก่อนอ่าน
คำอธิบายหนังสือตั้งกลุ่มผู้อ่านเป็นโปรแกรมเมอร์ที่มีประสบการณ์ ผู้อ่านจึงควรเขียน Python พื้นฐานได้แล้ว เช่น ใช้ list, dict, ฟังก์ชัน และคลาส หนังสือไม่ได้วางตัวเป็นตำราเริ่มต้นเขียนโปรแกรม
เหมาะกับใคร และใครควรเริ่มจากเล่มอื่นก่อน
เหมาะ กับนักพัฒนาหรือนักวิเคราะห์ข้อมูลที่ใช้ Python ทำงานอยู่ เช่น เขียนสคริปต์ backtest หรือ library ภายใน และอยากเข้าใจกลไกของภาษาให้ลึกขึ้น
เหมาะ กับคนที่อยากเข้าใจ generator, coroutine และ
asyncioก่อนนำไปใช้กับงานที่ต้องจัดการ I/O พร้อมกันหลายงานควรเริ่มจากเล่มอื่นก่อน ถ้ายังเริ่มเรียน Python หรือยังไม่เคยเขียนคลาส
ข้อจำกัดของข้อมูลที่ใช้ในบทความนี้
ยังไม่ได้อ่านเนื้อหาบทใด หน้าหนังสือบนเว็บ O'Reilly เปิดไม่ได้ในการค้นคว้าครั้งนี้
โครงบทมาจากชื่อโฟลเดอร์ในคลังโค้ด ไม่ใช่สารบัญ และไม่ได้รันโค้ด
ฉบับแรกเขียนบน Python 3 ในช่วงปี 2015 บางส่วน เช่น coroutine และ
asyncioอาจต่างจากแนวปฏิบัติใน Python รุ่นใหม่ ข้อนี้อนุมานจากการที่คลังมีโฟลเดอร์py3.7แยกไว้ข้อมูลในแคตตาล็อกของ Libro ใช้ ISBN 9781491946268 ตาม Google Books ส่วน ISBN ฉบับพิมพ์คือ 9781491946008 ทั้งสองอ้างถึงฉบับแรกปี 2015
แหล่งอ้างอิง
fluentpython/example-code · GitHub · README และชื่อโฟลเดอร์รายบทของฉบับแรก
Google Books: Fluent Python · Google Books · คำอธิบายหนังสือ จำนวนหน้า และ ISBN
Open Library: 9781491946008 · Internet Archive · ข้อมูลฉบับแรก วันที่ และจำนวนหน้า
fluentpython.com · Luciano Ramalho · เว็บไซต์ประกอบของฉบับที่ 2
หนังสือที่กล่าวถึงในบทความนี้

Fluent Python
Luciano Ramalho
ฉบับแรกปี 2015 ราว 800 หน้า ครอบคลุม data model, data structures, ฟังก์ชันเป็น object, OOP, generator, asyncio และ metaprogramming
บทความนี้อ่านจบได้ในตัวเอง หนังสือด้านบนคือจุดต่อยอดสำหรับผู้ที่ต้องการศึกษาลึกขึ้น
อ่านต่อ
25 ตุลาคม 2569
Inside the Machine: ทำความเข้าใจการทำงานของ CPU ผ่านภาพและการเปรียบเทียบหนังสือของ Jon Stokes จาก No Starch Press อธิบาย microprocessor architecture ตั้งแต่ pipelining ถึง Core 2 Duo บทความนี้สรุปจากสารบัญ คำนำ บทนำ และบทที่ 4 ที่สำนักพิมพ์เปิดให้อ่านฟรี
25 ตุลาคม 2569
Effective Modern C++: 42 แนวทางใช้ C++11 และ C++14 อย่างถูกวิธีหนังสือของ Scott Meyers (O'Reilly, 2014) ว่าด้วยการใช้ฟีเจอร์ของ C++11 และ C++14 เช่น smart pointer, move semantics, lambda และ concurrency บทความนี้สรุปจากสารบัญในระเบียนห้องสมุด หน้าผู้เขียน และ errata
25 ตุลาคม 2569
Learning Python ฉบับที่ 6: ตำรา Python แกนภาษาสำหรับ Python 3.12Learning Python ฉบับที่ 6 ของ Mark Lutz ปรับเนื้อหาใหม่ให้ตรงกับ Python 3.12 ขึ้นไปและตัด Python 2 ออก บทความนี้สรุปจากหน้าหนังสือบนเว็บไซต์ผู้เขียน และอ่านตัวอย่างบทที่ 39 Decorators ที่ผู้เขียนเผยแพร่บนเว็บไซต์
