9 Features ของ Python 3 ที่คุณ(อาจ)ยังไม่เคยใช้งาน

16-ธ.ค.-20

คัมภีร์เทพ IT

Developers หลายรายเริ่มเปลี่ยน Version จาก Python 2 เป็น Python 3 เนื่องจาก Python EOL ซึ่งการเปลี่ยนแปลงอย่างหนึ่งที่หลายคนรู้กันเป็นอย่างดีก็คือ การใช้ print() Function ของ Python 3 แทนการใช้ใน Python 2 และนี่ก็คือ 9 Features ของ Python 3 ที่คุณ(อาจ)ยังไม่เคยใช้งาน

1. Enumerations

ใน Python 3 จะช่วยให้คุณสามารถเขียน Enumerations ใน Enum Class ได้อย่างง่ายดาย Enumerations ถูกสร้างขึ้นด้วย Class Syntax ซึ่งช่วยอำนวยความสะดวกในการอ่านและเขียนได้อย่างง่ายดาย โดยที่ไม่มี Structure ใด ๆ แต่มันจะไม่เกิดขึ้นในทันทีทันใดจากการ Code

คุณสามารถใช้ Auto เมื่อค่าที่แน่นอนเริ่มไม่มีนัยสำคัญ

Enumerations Symbolic Terms (Member) ที่เกี่ยวข้องโดยเฉพาะกับ Fixed Value ซึ่งใน Enumerations นั้น Symbolic Names สามารถสร้างความแตกต่างผ่านการตั้งชื่อและการ Iterate Enumeration เพียงอย่างเดียว

*** Version ที่ต้องการก็คือ 3.4

2. Type Hinting

เรื่องของ Typing (ไม่ว่าจะเป็น Static หรือ Dynamic) นับเป็นหัวข้อที่ได้รับความสนใจในภาษา Computer และทุกคนต่างก็มีมุมมองเกี่ยวกับการเขียน Type แต่อย่างไรก็ตาม Developers ควรเรียนรู้ว่า Python 3 ได้รองรับการใช้ Type Hints แล้ว

*** Version ขั้นต่ำที่ต้องการก็คือ 3.5

3. Pathlib

F-strings นั้นยอดเยี่ยมมาก แต่ Strings อย่าง File Paths นั้นมี Libraries เป็นของตัวเอง ซึ่งทำให้ง่ายต่อการจัดการพวกมัน Pathlib Module จะช่วยลดความซับซ้อนของ Case ต่าง ๆ ที่ซับซ้อนและยัง Optimize Case ง่าย ๆ บางอย่างให้เหมาะสม และเพื่อความสะดวกในการทำงานกับ File Paths นั้น Python 3 จึงได้มี pathlib ขึ้นมา

 

*** Version ที่ต้องการก็คือ 3.4

4. F-Strings

เป็นการยากที่จะดำเนินการใด ๆ ในภาษา Programming ที่ไม่มี Strings และคุณคาดหวังว่าวิธีการที่มีโครงสร้างในการทำงานกับ Strings เพื่อให้เกิดประสิทธิผล คนส่วนใหญ่ที่ใช้ Python ชอบใช้ format Method

นอกจาก format แล้ว Python 3 ยังมีวิธีการที่หลากหลายในแทรก Strings ผ่าน f-strings เมื่อนำ Code ด้านบนมาใช้งานผ่าน f-strings จะเป็นดังนี้:

F-strings จะสร้าง Code ที่เข้าใจง่ายและใช้งาน Code ได้มากกว่าการใช้ String Concatenation หรือจัด Format ของ Strings

นอกจากนี้ F-strings ยังอนุญาตให้ Integrate Expressions เข้ากับ String โดยใช้ Syntax ขั้นต่ำ โดยจะสังเกตได้ว่า f-string เป็น Runtime Expression ไม่ใช่ Fixed Value

*** Version ขั้นต่ำที่ต้องการก็คือ 3.6

5. Built-In LRU Cache

LRU (Least Recently Used) Cache จะทำงานได้ดีมากหาก Calls ใหม่ล่าสุดเป็น Predictor ที่ดีที่สุดสำหรับ Calls ที่กำลังเข้ามา (ตัวอย่างที่พบบ่อยที่สุดก็คือ News Server Posts ที่จะแตกต่างกันไปในแต่ละวัน) Size Restriction ของ Cache หมายถึง Cache จะไม่ขยายตัวหากไม่มี Long-Running Cycles อย่างเช่น Web Servers

เมื่อ User Function ถูก Define ขึ้น มันต้องเป็น Function ที่สามารถ Call ได้ ด้วยสิ่งนี้จึงทำให้สามารถใช้ lru_cache Decorator กับ User Function ได้โดยตรงใน Python 3

ด้านล่างนี้เป็นตัวอย่างของ Fibonacci Function ที่เราเข้าใจได้ว่าจะได้รับประโยชน์จาก Cache เนื่องจากมันจะทำงานแบบเดียวกันซ้ำ ๆ หลายครั้ง

เราสามารถใช้ lru-cache เพื่อ Config ค่าพวกมันได้ (Optimization Method นี้เรียกว่า Memoization) Decorator จะครอบคลุม Function ที่มีการ Call ที่ Memoizing ซึ่งจัดเก็บ maxsize ของการ Call ล่าสุด

*** Version ขั้นต่ำที่ต้องการก็คือ 3.2

6. Extended Iterable Unpacking

เราจะให้ Code ด้านล่างนี้ ช่วยแสดงให้คุณเห็นในเรื่องนี้ได้อย่างชัดเจน

*** Version ขั้นต่ำที่ต้องการก็คือ 3.0

คุณสามารถดูที่ Official Python 3 Documentation เพื่อความชัดเจนเกี่ยวกับ Extended Iterable Unpacking

7. Underscores ใน Numeric Literals

ใน Python 3.6 นั้นมีวิธีการที่น่าตื่นเต้นในการช่วยให้คุณสามารถอ่านพวกตัวเลข (Numerical Literals) โดยการเน้นย้ำถึงตัวเลข มันสามารถนำไปใช้เพื่ออธิบายให้ชัดเจน เช่น เลข Thousands, Hexadecimal และ Binary

*** Version ขั้นต่ำที่ต้องการก็คือ 3.6

8. Assignment Expressions — ‘walrus’ Operator

ใน Version 3.8 ของ Python มีการเปิดตัว Walrus Operator ซึ่งเป็นการประกาศตัวแปรภายใน Expression มันมีประโยชน์อย่างยิ่งในกรณีที่คุณต้องการอ้างอิงถึงลักษณะที่ปรากฏใน Code ในภายหลังและสามารถช่วยประหยัดการเขียน Code ไปได้ 1 หรือ 2 บรรทัด

*** Version ขั้นต่ำที่ต้องการก็คือ 3.8

9. Data Classes

Python 3 ได้มีการจัดเตรียม Data Classes ไว้ให้ใช้ ซึ่งมันมีข้อจำกัดเล็กน้อยและเพื่อทำให้ใช้ Boilerplate Code ให้น้อยที่สุด เนื่องจาก Decorator สร้าง Method เฉพาะขึ้นมาให้โดยอัตโนมัติ อย่างเช่น __init__() และ __repr__() โดยใน Official Proposal ได้ระบุว่ามันเป็น "Mutable Named Tuples With Defaults"

ด้วยการใช้ @dataclass Decorator คุณสามารถเขียน Code ที่สามารถใช้งานแบบเดียวกันได้ดังนี้:

*** Version ขั้นต่ำที่ต้องการก็คือ 3.7

คุณสามารถดูที่ Official Python 3 Documentation เพื่อความชัดเจนเกี่ยวกับ dataclass

หมายเหตุ: ตัวอย่าง Code ทั้งหมดในบทความนี้ถูกเขียนใน Python 3.8.0

ที่มา:  https://medium.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด