Zen of Python

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

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

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

# import อะไรเอาให้ชัดเจนอย่าใช้ * มันจะลำบากในภายหลัง<br />
from imooh import *</p>
<p># import ให้เห็นกันไปเลย<br />
from imooh import blog

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

# เข้าใจง่าย<br />
def f(x):<br />
  return 2*x

# อันนี้ เห็นแล้วอาจมีสตัน<br />
f = lambda x: 2*x

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

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

counter = 0<br />
while counter &lt; 5:<br />
   print counter<br />
   counter += 1

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

for i in xrange(5):<br />
  print i

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