Python 2.5 alpha 1
Python ขึ้นเลข minor เวอร์ชันใหม่แล้ว จาก 2.4 มาเป็น 2.5 มีฟีเจอร์น่าสนใจ (แต่ไม่รู้จะได้ใช้หรือเปล่า) เพิ่มมาเยอะเหมือนกัน
- Conditional Expression - อันนี้น่าจะได้ใช้ คือเรื่องมีอยู่ว่า ในภาษา C เวลาเขียนเงื่อนไขแบบสั้นๆ เราเขียนง่ายๆ คือ
x = condition? a:bแต่ใน python เขียนสั้นๆ แบบนี้ไม่ได้เสียที จนกระทั่งเวอร์ชันนี้สามารถเขียนได้แล้ว แต่หน้าตาจะต่างจากของ C นิดหน่อย คือx = a if condition else bดูแล้วก็อ่านง่ายดี - Partial Function - เค้าว่าเป็นการเขียนสไตล์ functional programming เท่าที่ดูก็ไม่เห็นมีประโยชน์เท่าไหร่ ยกเว้นเวลาเขียน app ที่มันมี function ที่รับ argument เยอะๆ (น่าจะได้ใช้ตอนเขียนพวก PyGTK) คือสมมุติว่าเรามี function f(a, b, c) เราสามารถสร้าง function g(b, c) ที่ equivalent กับ f(1, b, c) ได้ (รู้สึกเหมือนตอนเรียนเลข ม.ปลาย เรื่อง function เลย)
- try/except/finally - ในเวอร์ชันก่อนๆ เราจะมี statement try…except กับ try…finally แยกกันเป็นคนละอัน ใน python 2.5 เราสามารถเขียนรวมกันได้แล้ว เป็นแบบ
try:
do something
except Exception:
handle something
else:
do another thing
finally:
always do this
- ‘with’ statement - ใช้สร้าง context manager (มันคืออะไร ?) ยังไม่ค่อยเข้าใจ ดูเหมือนจะเป็น idiom ใหม่ เอาไว้เขียน try…finally ให้สวยๆ
- New packages - ctype เอาไว้เรียก function จาก shared lib หรือ dll ได้เลย, ElementTree เป็น package ย่อยอยู่ข้างใน package xml อีกที, hashlib เอาไว้ใช้แทน Module md5 และ sha เดิม พร้อมทั้ง support hash แบบอื่นๆ อีกด้วย
- Other - มีปรับปรุงอย่างอื่นอีกเล็กๆ น้อยๆ เช่น function any(), all() หรือเพิ่มความสามารถให้ function min(), max() แล้วก็ฟีเจอร์อื่นที่อ่านแล้วงง คาดว่าคงไม่ได้ใช้อย่าง relative import กับ generator แบบใหม่
เวอร์ชันนี้เป็นแค่ alpha 1 เท่านั้น ตัวจริงออกประมาณ June-July

python เลอะเทอะน่า เพิ่ม syntax กระจอกๆแบบนี้ไม่ต้องเปลี่ยน version ตั้ง 0.1 ก็ได้ (ยกเว้น partial function เพราะท่าจะเหนื่อยกว่าตัวอื่นหน่อย) ที่น่าสนใจคือ partial function ที่ว่าเป็น first class รึเปล่า และทำ function nesting ได้มั้ย