import ใน python

อันนี้มันอดไม่ได้ที่จะเขียนเลยขอซักหน่อยละกันเกี่ยวกับ technical

เนื่องจากต้องเตรียมตัวสำหรับงานพรุ่งนี้ วันนี้ เลยนั่งทดลอง python ทั้งวันแล้วก็เจอความแปลกอย่างหนึ่งเกี่ยวกับระบบ import(หรือ include ในภาษาซี) ของมันเข้า หรือจริงๆ เพราะอาจจะไม่เคยชินเองก็ได้เลยรู้สึกแปลก

ปกติหลังจากเรียก include/import/require/… อะไรก็ตามที่ไว้เชื่อม code ไฟล์สองไฟล์เข้าด้วยกัน เวลาจะเรียก code เราจะเรียกได้ตรงๆ เลย แต่สำหรับ python แล้วมันต่างออกไปนิดนึง นั่นคือ หลังจาก import จะถือว่า ไฟล์นั้นรู้ว่ามี module ที่ import เข้ามาอยู่แต่ถ้าจะเรียก ต้องเรียกตาม path ทั้งหมดไม่ได้เรียกแค่ชื่อ function หรือ class เหมือนภาษาอื่นๆ เช่น

ไฟล์ package/sub-package/a.py


class Hello:
     def roll(self):
          print "hello"

ไฟล์ package/b.py


import package.sub-package.a

a = package.sub-package.a.Hello()
a.roll()

แต่จะให้เรียกแค่ Hello() เหมือนภาษาอื่นๆ ก็ทำได้เหมือนกันคือ


from package.sub-package.a import Hello

a = Hello()
a.roll()

ซึ่งก็ยังงงๆ ว่าทำไม python ต้องทำ import ไว้สองแบบ จริงๆ ยังมีอีกเรื่อง แต่อันนั้นไว้แยกเขียนอีกวันละกัน ;p เดี๊ยวไม่มีอะไรจะเขียน



Comments

No comments yet.

Add Yours

  • Author Avatar

    YOU


Comment Arrow



About Author

llun

Apple addict programmer