12 เทคนิคและเคล็ดลับ ที่จะช่วยให้คุณเขียน Python Code ดีขึ้น

11-ส.ค.-20

คัมภีร์เทพ IT

หากคุณเป็น Developer ที่ใช้งาน Python อยู่ และต้องการปรับปรุงคุณภาพ Code ของคุณ ขอแนะนำให้อ่านบทความนี้ เพราะบทความนี้จะมาบอกถึง 12 เทคนิคและเคล็ดลับ ที่จะช่วยให้คุณเขียน Python Code ดีขึ้น

1. F-Strings

F-Strings เป็นวิธีที่เพิ่มความกระชับและความสะดวกในการ Embed Python Expressions ไว้ในตัว String เพื่อการจัด Format

ในขั้นแรก ให้กำหนด 2 ตัวแปร คือ name และ age ที่คุณต้องการจะให้อยู่ใน print statement ของเรา

หากคุณไม่อยากยุ่งกับการต้องนำ String มาต่อกัน (String Concatenation) หรือใช้เครื่องหมาย Comma ภายใน print statement คุณสามารถใช้ Syntax การจัด Format ของ String ของ Python อย่าง “f-Strings” ซึ่งถูก Release มาใน Python 3.6

เพียงใส่อักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ “f” นำหน้า String ที่มี ตัวแปร หรือ Expressions ภายในวงเล็บปีกกา

F-Strings เป็นวิธีใหม่ที่ยอดเยี่ยมในการจัด Format ของ String อีกทั้งช่วยให้อ่านได้ง่าย เร็ว, กระชับยิ่งขึ้นและมีแนวโน้มที่จะเกิด Error น้อยกว่าการจัด Format วิธีอื่น ๆ

2. Help Function

Help Function ของ Python ถูกใช้เพื่อค้นหา Document ของ Modules, Functions, Classes, Keywords รวมทั้งอื่น ๆ

เพียงส่งผ่าน Object ลงใน Help Function เพื่อทำการดึง Document ของ Object นั้น ๆ ออกมาแสดง:

3. หา Size ของ Object

sys module ประกอบไปด้วย getsizeof Function ซึ่งจะรับ Object และจะ Return ขนาดเป็น Byte กลับมาให้ โดยที่ Object สามารถเป็น Type แบบใดก็ได้

ตัวอย่างเช่น

เฉพาะการใช้ Memory ที่เป็นของ Object นั้นโดยตรงเท่านั้น ที่จะถูกนำมาพิจารณา ไม่ใช่การใช้ Memory ของ Object ที่อ้างอิงถึง

ตัวอย่างเช่น

4. การกำหนดเงื่อนไขแบบห่วงโซ่

โดยปกติ ในการตรวจสอบเงื่อนไขที่มากกว่า 2 เงื่อนไข คุณจะต้องใช้ Logical Operators อย่าง And / Or

ใน Python มีวิธีที่ดีกว่าในการเขียนโดยใช้ Comparison Operator Chaining

การใช้ Operators ในรูปแบบห่วงโซ่ สามารถเขียนได้ดังนี้:

ตัวอย่างเช่น

5. List Comprehensions

List Comprehensions เป็นอีกวิธีหนึ่งและบ่อยครั้งที่ดูเหมือนจะเป็นวิธีที่ยอดเยี่ยมในการสร้าง List 

แทนที่จะสร้าง Empty List ขึ้นมา แล้วเพิ่มแต่ละ Element เข้าไป คุณสามารถกำหนด List และ Content ของมันขึ้นมาพร้อมกันได้ โดยทำตามรูปแบบนี้:

ตัวอย่างเช่น

อีกตัวอย่างหนึ่ง (พร้อมเงื่อนไข):

6. ใช้การคูณกับ String

ใน Python เราไม่เพียงจะสามารถ “คูณ” เฉพาะตัวเลขได้เท่านั้น แต่สามารถยังสามารถใช้มันกับ String ได้ด้วย

ตัวอย่างเช่น

7. กำหนดตัวแปรหลายตัวพร้อมกันได้ ภายในบรรทัดเดียว

คุณสามารถกำหนดหลายค่า ให้กับตัวแปรหลายตัวได้ โดยแยกแต่ละตัวแปรและค่า ด้วยการใช้เครื่องหมาย Comma:

นอกจากนี้ คุณยังสามารถใช้ในการ Unpack Sequences อย่าง Lists หรือ Tuples ได้ อีกทั้งมันยังเป็นวิธีที่ดีกว่าในการกำหนด Elements ของ Sequence ให้กับตัวแปรแต่ละตัว เนื่องจากเราไม่จำเป็นต้องใช้ Loop หรือแยก Index แต่ละ Element ของ Sequence

8. สลับตัวแปร

ในภาษา Programming อื่น ๆ การสลับค่าของตัวแปรตั้งแต่ 2 ตัวขึ้นไป สามารถทำได้ด้วยการกำหนดตัวแปร temp (temporary) เพิ่มเข้าไปเท่านั้น

สมมติว่า คุณต้องการสลับ x และ y:

แต่ใน Python จะมีการใช้งานที่เป็นโครงสร้างง่าย ๆ เพียงบรรทัดเดียวเพื่อใช้ในการสลับตัวแปร ซึ่งก็คล้าย ๆ กับ Concept ของการกำหนดค่าให้กับตัวแปรหลายตัว ภายในบรรทัดเดียว

Code ต่อไปนี้ สามารถทำเช่นเดียวกับตัวอย่างด้านบน แต่เราไม่ต้องใช้ตัวแปร temporary ใด ๆ :

9. สร้าง Enum

Enum เป็น Class ใน Python สำหรับสร้าง Enumerations ซึ่งเป็น Set ของชื่อสัญลักษณ์ที่แนบมากับค่า Unique และ Constant

ในการสร้าง Enum มันเป็นเรื่องจำเป็นที่ต้องสร้าง Class ซึ่งเป็น ชื่อ ของ Enum ที่คุณต้องการ

สิ่งที่ต้องทำคือ แสดง List ตัวแปร และ Set ค่าให้พวกมันเท่ากับ ค่า ที่คุณต้องการ:

ในการเข้าถึงสมาชิก enum อย่างเช่น Paul คุณสามารถทำได้ด้วยการใช้ Person.Paul ซึ่งมันจะ Return 0 กลับมาให้

สำหรับ Python นั้น ในตัวอย่างข้างต้น เราสามารถย่อให้สั้นลงได้ด้วยการนำตัวแปรมาเขียนข้าง ๆ กัน แล้ว Set ค่าพวกมันให้เท่ากับฟั range Function:

10. Enumerate

บ่อยครั้ง เมื่อวน Loop ผ่าน List ที่คุณต้องการเข้าถึง ไม่เพียงแค่ Index พร้อมกับตำแหน่งใน List เท่านั้น แต่ยังรวมถึงElement จริง ๆ อีกด้วย

มากำหนด List ของ Characters:

แทนที่จะวน Loop ด้วยวิธีมาตรฐาน แต่เราจะทำการเข้าถึง Element และ Index:

ใช้ Enumerate

Enumerate เป็น Built-in Function ของ Python และช่วยให้เราวน Loop ได้แถมยังมีตัว Counter ให้โดยอัตโนมัติ โดยพื้นฐานแล้วมันจะจับคู่ทุก Element ใน List ของเรากับ Index ที่เกี่ยวข้อง มือใหม่ส่วนใหญ่และแม้แต่ Programmer มีประสบการณ์สูงบางคนก็ยังไม่รู้ว่าสามารถทำแบบนี้ได้

คุณสามารถเปลี่ยนตัวแปร i และ v ไปเป็นชื่อตัวแปรอื่น ๆ ที่คุณต้องการได้ อย่างเช่น for index, count in enumerate(x)

11. Dir Function

dir() เป็น inbuilt Function ที่มีประสิทธิภาพใน Python3 ซึ่งจะ Return รายการของ Attributes และ Methods ของ Object เช่น Functions, Modules, Strings, Lists, Dictionaries เป็นต้น

สิ่งนี้มีประโยชน์อย่างยิ่ง เมื่อมีข้อมูลเกี่ยวกับ Module เพียงเล็กน้อยหรือไม่มีเลย และยังช่วยให้เรียนรู้ Module ใหม่ได้เร็วยิ่งขึ้น

ตัวอย่างเช่น 

dir() มักถูกใช้เพื่อวัตถุประสงค์ในการ Debug ความสามารถของ dir() ในการแสดงรายการ Attributes ทั้งหมดของ Parameter ที่ส่งผ่านนั้น มีประโยชน์อย่างมากเมื่อต้องจัดการกับ Classes และ Functions ที่มีจำนวนมาก ๆ

12. Argument Unpacking

บางครั้ง ก็เรียกว่า Splat หรือ Scatter Operator โดย * จะทำงานเมื่อ Arguments ใน List/Tuple จำเป็นต้องถูก Unpack สำหรับ Function Call ที่ต้องการแยก Positional Arguments

อย่างเช่น Built-in range() Function ตั้งใจว่าจะแยก Start และ Stop ของ Arguments คุณสามารถใช้ * Operator เพื่อ Unpack Arguments ออกจาก List หรือ Tuple เมื่อเขียน Function Call:

เรามากำหนด List อย่างง่ายกัน เช่น x = [1,2,3,4,5]

ตัวอย่างทั่วไปของการ Unpack Operator มักจะใช้ print :

เพียงแค่ print แต่ละ Element ของ List จะเรียงอยู่ข้างกันโดยคั่นด้วยช่องว่าง เนื่องจาก Unpack Operator จะใช้ Element ทั้งหมดใน List และส่งผ่านเป็น Parameter ดังนั้น จากการแปล Code ด้านบน จะเป็น print(1,2,3, 4,5)

เทคนิคของ Python ในข้อนี้ มักถูกใช้งานบ่อยใน Function เพื่อ "Pack" Argument ทั้งหมดที่ Method Call รับไว้ในตัวแปรเดียว

ตัวอย่างเช่น

Function func ด้านบน สามารถรับจำนวนของ Argument ได้ไม่จำกัด (args[0] และ args[1] จะเป็น Argument แรก และ Argument ที่ 2 ตามลำดับ)

ในทำนองเดียวกัน Dictionary สามารถส่ง Keyword Argument ด้วย ** Operator

เรามากำหนด Python Dictionary ที่เรียกว่า person:

คุณสามารถใช้ ** Operator เพื่อส่งผ่านเข้าไปใน Dictionary ไปยัง Function

Dictionary ที่ส่งผ่านเข้ามา จะแยก Key เป็น Function Keyword Arguments และจากนั้นรับค่าเป็น Actual Value ที่ส่งผ่านสำหรับ Argument นั้น

ตัวอย่างเช่น

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

 

 

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

 

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

เพิ่มเพื่อน

 

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