Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

อธิบาย Python Namespace ให้เข้าใจง่าย

คิดว่า Namespace เหมือน "บริบทการทำงาน" (Evaluation Context) ที่แต่ละฟังก์ชัน โมดูล คลาส หรือแพ็กเกจ มีของตัวเอง

จุดสำคัญ

  • เมื่อเริ่มทำงาน → สร้าง Namespace ใหม่
  • เมื่อจบการทำงาน → Namespace หายไป ตัวแปรก็หายตาม
  • มี Global Namespace สำรองไว้ หาไม่เจอใน Local จะมาหาที่นี่

ลำดับการค้นหา (LEGB Rule)

  1. L - Local: ภายในฟังก์ชัน/แลมบ์ดา
  2. E - Enclosing: ฟังก์ชันภายนอกที่ห่อหุ้ม (Nested Functions)
  3. G - Global: ระดับโมดูล
  4. B - Built-in: คำสั่งพื้นฐานของ Python (print, len, etc.)

การสร้างตัวแปร

ปกติสร้างใน Local เท่านั้น ใช้ global หรือ nonlocal เพื่อเข้าถึงระดับนอก