Tag: functools

8 รายการ

Blog

งูต้นฉบับกำลังจัดก้อนหินสามก้อนตามความสูงบนทางลาดสีเขียวอ่อน
pythonfunctoolsdomain-model

Python total_ordering: ลด comparison boilerplate แต่เก็บกฎลำดับไว้จุดเดียว

สร้าง value object ที่เรียงได้จาก __eq__ และ comparator หนึ่งตัว พร้อมขอบเขตของ NotImplemented

พี่โชว์
งูต้นฉบับหมุนแท่นกลางให้พัสดุทรงต่างกันไหลไปหาเครื่องมือที่ตรงชนิด
pythonfunctoolsdispatch

Python singledispatchmethod: แยก Handler ตามชนิดโดยยังเป็น Method เดียว

ใช้ functools.singledispatchmethod ทำ command handler ที่ขยายได้ พร้อมเข้าใจตำแหน่ง argument, inheritance และข้อจำกัดของ type annotation

พี่โชว์
งูต้นฉบับหมุนคันโยกสองอันที่ต่อเข้ากลไกประตูเดียวกัน โดยแต่ละคันล็อกสถานะเปิดหรือปิดไว้ล่วงหน้า
pythonfunctoolsoop

Python partialmethod: สร้างเมธอดเฉพาะทางโดยยังผูก self ถูกตำแหน่ง

ใช้ functools.partialmethod ลด wrapper ซ้ำใน class พร้อม unittest และข้อควรระวังเรื่อง signature กับ descriptor

พี่โชว์
งูสีเขียวต้นฉบับกำลังเสียบชิ้นไม้สองชิ้นลงช่องว่างกลางแม่แบบสีครีม
pythonfunctoolspython-3.14

Python 3.14 functools.Placeholder: partial ช่องกลางได้โดยไม่เขียน lambda ห่อ

ใช้ Placeholder จอง positional argument ตรงกลางของ partial พร้อมข้อจำกัดเรื่องจำนวนช่องและ keyword arguments

พี่โชว์
งูต้นฉบับเฝ้ากล่องผลลัพธ์ที่มีลูกศรวนกลับไปยังเครื่องคำนวณบนโต๊ะสีมิ้นต์
pythonfunctoolscaching

Python cached_property: คำนวณครั้งเดียว แต่อย่าลืมออกแบบจังหวะล้าง cache

เข้าใจการเขียนทับ การลบเพื่อคำนวณใหม่ ข้อจำกัดของ __dict__ และ race ที่ยังเกิดได้

พี่โชว์
นากกายจัดกล่องแคชสองใบบนโต๊ะมิ้นต์ ใบหนึ่งไม่จำกัดขนาด ใบหนึ่งมีช่อง LRU สีอำพัน
pythonstdlibfunctools

functools.cache กับ lru_cache: เมื่อไหร่ควรจำกัดขนาดแคช

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

น้องกาย
นากกายวางกล่องผลลัพธ์ซ้ำบนชั้นแคชขนาดจำกัดบนโต๊ะมิ้นต์
pythonstdlibfunctools

functools.lru_cache: จำผลคำนวณซ้ำโดยไม่ต้องเขียนแคชเอง

อธิบาย lru_cache จาก stdlib พร้อมตัวอย่างรันได้ ตารางเลือก maxsize และข้อควรระวังเรื่องอาร์กิวเมนต์ที่แฮชได้

น้องกาย
งูสีมิ้นต์ต้นฉบับกำลังแยกพัสดุรูปทรงต่างกันลงรางที่ตรงชนิดบนโต๊ะสว่าง
pythonfunctoolsdesign

Python singledispatch: แยกพฤติกรรมตามชนิดโดยไม่สร้าง if ยาว

ใช้ functools.singledispatch ทำจุดเข้าเดียวที่ขยาย handler ตามชนิด พร้อม unittest ของ fallback และ subclass

พี่โชว์