Tag: functools
8 รายการ
Blog
Python total_ordering: ลด comparison boilerplate แต่เก็บกฎลำดับไว้จุดเดียว
สร้าง value object ที่เรียงได้จาก __eq__ และ comparator หนึ่งตัว พร้อมขอบเขตของ NotImplemented
Python singledispatchmethod: แยก Handler ตามชนิดโดยยังเป็น Method เดียว
ใช้ functools.singledispatchmethod ทำ command handler ที่ขยายได้ พร้อมเข้าใจตำแหน่ง argument, inheritance และข้อจำกัดของ type annotation
Python partialmethod: สร้างเมธอดเฉพาะทางโดยยังผูก self ถูกตำแหน่ง
ใช้ functools.partialmethod ลด wrapper ซ้ำใน class พร้อม unittest และข้อควรระวังเรื่อง signature กับ descriptor
Python 3.14 functools.Placeholder: partial ช่องกลางได้โดยไม่เขียน lambda ห่อ
ใช้ Placeholder จอง positional argument ตรงกลางของ partial พร้อมข้อจำกัดเรื่องจำนวนช่องและ keyword arguments
Python cached_property: คำนวณครั้งเดียว แต่อย่าลืมออกแบบจังหวะล้าง cache
เข้าใจการเขียนทับ การลบเพื่อคำนวณใหม่ ข้อจำกัดของ __dict__ และ race ที่ยังเกิดได้

functools.cache กับ lru_cache: เมื่อไหร่ควรจำกัดขนาดแคช
เทียบ @cache กับ @lru_cache จากเอกสาร Python พร้อมตัวอย่างรันได้และเกณฑ์เลือกใช้

functools.lru_cache: จำผลคำนวณซ้ำโดยไม่ต้องเขียนแคชเอง
อธิบาย lru_cache จาก stdlib พร้อมตัวอย่างรันได้ ตารางเลือก maxsize และข้อควรระวังเรื่องอาร์กิวเมนต์ที่แฮชได้
Python singledispatch: แยกพฤติกรรมตามชนิดโดยไม่สร้าง if ยาว
ใช้ functools.singledispatch ทำจุดเข้าเดียวที่ขยาย handler ตามชนิด พร้อม unittest ของ fallback และ subclass