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

Namespace ใน Python คืออะไร? (พื้นฐาน)

Namespace = ระบบ Mapping จาก "ชื่อ" (Name) ไปยัง "อ็อบเจกต์" (Object) ใช้แก้ปัญหาชื่อชนกัน

ลักษณะสำคัญ

  • แต่ละ Package, Module, Class, Function, Method มี Namespace ของตัวเอง
  • สร้างขึ้นตอนเริ่ม Execute, หายตอนจบ Execution
  • คิดเป็น "Evaluation Context" หรือ "Symbol Table"

ประเภท Namespace

  1. Built-in Namespace: คำสั่งพื้นฐาน (print, len, Exception) - สร้างตอน Start Interpreter
  2. Global Namespace: ระดับ Module (Script หลัก) - สร้างตอน Run Module
  3. Local Namespace: ภายใน Function/Class - สร้างตอน Call Function

การค้นหาชื่อ (Name Resolution)

Python ค้นหาตามลำดับ: Local → Enclosing → Global → Built-in (LEGB)

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

  • Assignment (x = 1) → สร้างใน Local Namespace ปกติ
  • global x → สร้าง/แก้ไขใน Global Namespace
  • nonlocal x → สร้าง/แก้ไขใน Enclosing Namespace
Note: Namespace ถูก Implement ด้วย Dictionary (Hash Table) ใน CPython