ก็แค่เคยชิน

posted on 01 Oct 2011 21:52 by plynoi in Tech
ช่วงนี้อ่านหนังสือ Head First Python เป็นหนังสือที่เรียบเรียงและนำเสนอได้แปลกดี ก็อ่านๆ แล้วก็เขียน code ตามโจทย์ที่หนังสือให้มาไปเรื่อยๆ โดยไม่ได้ลอก example ในหนังสือมารันแป๊ะๆ เท่าไหร่นัก

อาทิตย์ก่อนรันไปติด code อันนึงที่ผมไม่ได้เขียนแบบลอกหนังสือ รันแล้วติด error
อ่านบทเกี่ยวกับการ process data อยู่ ผมสมมติว่าต้องเขียน script อ่านค่าตัวเลขใน file มาแล้ว return กลับมาเป็นตัวเลข ไม่ใช่ string ก็สมมติว่ามี text file ชื่อ 111.txt ข้างในมีเนื้อหาอยู่บรรทัดเดียวว่า 111222 ละกัน ผมเขียน code อ่านมันออกมาแบบง่ายๆ แบบนี้
def openFile(str):
  with open(str) as fi:
   data=fi.readline()
  return str(data)

print(openFile("./111.txt"))
Code ง่ายๆ simple สุดๆ รันออกมาแล้วได้
Traceback (most recent call last):
  File "", line 1, in
  File "", line 4, in openFile
TypeError: 'str' object is not callable
ผมงงมากว่าผิดตรงไหน - -" ไป Load code ตัวอย่างในหนังสือมาก็รันได้ เอามาเปรียบเทียบกันก็เหมือนกันทุกอย่าง นั่งหาว่าผิดตรงไหน นั่งงง นั่งหงุดหงิดอยู่ 1 ชั่วโมง google ก็ไม่เจอ อยู่ๆ ผมก็ถึงกับบางอ้อ

คือผมเขียนอะไรมา ผมจะติดเขียนแบบนั้นมาโดยตลอด ผมติดการตั้งชื่อตัวแปร string ว่า str มาน่าจะเกิน 10 ปี ซึ่งเจ้า str เนี่ยมันไปซ้ำกับ str ที่เป็น built-in function ของ Python เข้า มันเลยเจ๊ง - -"

สรุปแล้วเวลาศึกษาภาษาที่ต่างกัน ก็ต้องหัดที่จะลืมความเคยชินของภาษาเก่าๆ ไปบ้าง ไม่งั้นจะตีกันมั่วซั่ว

ป.ล. ผมติดตังชื่อปุ่มว่า btnXXX ชื่อ textbox ว่า txtXXX ชื่อ string ว่า strXXX สรุปนี่ผมติด VB6 ใช่รึเปล่าเนี่ย

Comment

Comment:

Tweet

มีช่วงนึง ที่ผมเขียบ VB, Javascript, PHP พร้อมๆ กัน และแต่ละภาษามัน concat string ต่างกันหมด.. ก็มั่วกันเลยทีเดียว ใช้สลับกันสนุกสนาน error กระจุย เหอๆ

#1 By ไอ้แพท.. on 2011-10-02 22:32