Nattawut Phetmak
Jack of all Trades
PEP หรือ Python Enhancement Proposal คือข้อเขียน/ข้อเสนอโครงการสำหรับปรับปรุงเพิ่มความสามารถ Python ให้ดีขึ้น โดยที่ PEP 8 นั้นเป็นข้อเขียนสำหรับ coding standard ของ Python ที่เราควรยึดถือ
แน่นอนว่าเราควรเขียน code ตาม coding standard ที่วางไว้ แต่บางครั้งก็มีพลาดบ้าง เราสามารถเรียกโปรแกรม pep8 เพื่อตรวจสอบการเขียนได้ครับ
ก่อนอื่น (ฝั่ง Linux) ใช้ apt-get เพื่อดาวน์โหลด pep8 เรียบร้อยแล้วหาไฟล์ script.py ที่เราต้องการตรวจ แล้วสั่ง
$ pep8 script.py
สำหรับฝั่ง Windows ที่ไม่มี apt-get ก็สามารถใช้โปรแกรมนี้ได้เช่นกัน โดยการดาวน์โหลดไฟล์ pep8.py จาก GitHub แต่เวลาจะสั่งงานจะยุ่งยากกว่าเดิมเล็กน้อย ดังนี้
$ python pep8.py script.py
และต้องอย่าลืม copy ไฟล์ pep8.py ไปไว้ยังโฟลเดอร์เดียวกันกับไฟล์ที่ต้องการตรวจสอบด้วยครับ
หลังจากสั่งตรวจสอบไฟล์ script.py แล้ว ถ้าเราเขียนได้เรียบร้อยดีไม่มีปัญหา โปรแกรมจะไม่พิมพ์อะไรออกมาเลย (ตามสไตล์ของโปรแกรม Unix) แต่ถ้ายังมีรูปแบบการพิมพ์ที่ไม่ได้มาตรฐานอยู่ โปรแกรมจะพิมพ์ผลลัพท์ออกมาในรูปแบบนี้
[script.py]:[row]:[col]: [error type][error code] [description of error]
เช่น
$ pep8 script.py
script.py:5:1: W191 indentation contains tabs
script.py:9:43: E225 missing whitespace around operator
script.py:21:1: E302 expected 2 blank lines, found 1
script.py:42:80: E501 line too long (80 characters)
ทั้งนี้ เราอาจเห็นว่า error มีน้อย นั่นก็เพราะว่ามันจะแสดงข้อผิดพลาดที่ซ้ำๆ กัน (อย่างเช่นการใช้ tab) เพียงแค่ครั้งแรกครั้งเดียวครับ
เมื่อต้องการ option เพิ่ม เราสามารถขอดู help ได้เช่นโปรแกรม Unix ทั่วไป
$ pep8 -h
option ที่สำคัญได้แก่
-v
พิมพ์สถานะการทำงานออกมาเรื่อยๆ-q
แสดงแค่ชื่อไฟล์ที่มีข้อผิดพลาด มักใช้ในกรณี test หลายๆ ไฟล์-r
แสดงจุดที่ผิดพลาดทั้งหมด ไม่ใช่แค่ครั้งแรกที่เจอ--show-source
แสดง code ต้นฉบับด้วยเลยว่าผิดตรงไหน--show-pep8
แสดงข้อแนะนำจาก PEP 8 ว่าควรเขียน code อย่างไร--count
นับว่าเขียนผิดทั้งหมดกี่จุดอย่างไรก็ดี พึงระลึกไว้เสมอว่า pep8 เป็นเครื่องมือตรวจสอบความถูกต้องของ coding standard เท่านั้น code ที่เขียนผิดจน run ไม่ผ่านอาจไม่แสดง error ใน pep8 เลยก็ได้ครับ