Zen of Python

ผมมีโอกาสได้ศึกษาและใช้งาน Python มาซักระยะนึงแล้ว รู้สึกชอบในความง่ายและความเป็นระเบียบของภาษา ซึ่งจริงๆ แล้วแต่ละภาษาก็มีข้อตกลงของรูปแบบในการเขียน (code style) ที่แตกต่างกันออกไป และแต่ละภาษาก็อาจจะมีหลายๆ รูปแบบ แล้วแต่ว่าชอบแบบไหน Python เองก็มีแนวทางที่ให้ไว้เหมือนกัน เรียกว่า “Zen of Python

Beautiful is better than ugly: แน่นอนว่าใครๆ ก็ชอบความสวยงามมากกว่าขี่เหร่อยู่แล้วว่ามั๊ย ^^

Explicit is better than implicit: ให้มันเห็นชัดๆ ไม่ต้องคิดให้คิด ไม่ใช่ว่าผ่านไปเดือนสองเดือนกลับมาดูโค้ดตัวเองต้องมานั่งมือกุมขมับ ว่าตัวเองเขียนอะไรไว้

# import อะไรเอาให้ชัดเจนอย่าใช้ * มันจะลำบากในภายหลัง
from imooh import *

# import ให้เห็นกันไปเลย
from imooh import blog

Simple is better than complex: เอาง่ายๆ ไม่ต้องซับซ้อนโชว์เพาว์ เขียนให้คนอ่านแล้วเข้าใจ อย่าเขียนให้คนอ่านแล้วงง (เดี๋ยวเค้าจะถามหาคนเขียน ^^)

# เข้าใจง่าย
def f(x):
  return 2*x
# อันนี้ เห็นแล้วอาจมีสตัน
f = lambda x: 2*x

Complex is better than complicated: ซับซ้อนอย่างมีเหตุผล ก็ยังดีกว่าทำให้ยากเข้าใจ อันนี้แอบงงนิดนึง

ตัวอย่างนี้ดูแล้วอาจจะไม่ซับซ้อน แต่ดูแล้วเข้าใจยาก ต้องทำอะไรก็ไม่รู้เยอะแยะ ทั้งๆ ที่ดูแล้วก็แค่วนลูปแล้วก็ print ค่าจาก 0 – 4 ออกมา

counter = 0
while counter < 5:
   print counter
   counter += 1

ลองเปรียบเทียบกับตัวอย่างด้านบนแล้ว โค้ดด้านล่างอาจจะดูซับซ้อนกว่า แต่ไม่ต้องทำให้ไรมากมาย ถ้ารู้ว่า xrange ทำอะไรแล้วนี่ยิ่งสบายเลย

for i in xrange(5):
  print i

อยากเก่งต้องขยันฝึก จำไว้ “เก่งไม่กลัว กลัวขยัน” ^^