ใน python เราจัดการกับตัวแปร ฟังก์ชัน ไลบรารีและโมดูล เป็นต้น มีโอกาสที่ชื่อของตัวแปรที่คุณจะใช้นั้นมีอยู่แล้วเป็นชื่อของตัวแปรอื่น หรือเป็นชื่อของฟังก์ชันอื่นหรือวิธีการอื่น ในสถานการณ์เช่นนี้ เราจำเป็นต้องเรียนรู้เกี่ยวกับวิธีการจัดการชื่อเหล่านี้ทั้งหมดโดยโปรแกรมหลาม นี่คือแนวคิดของเนมสเปซ
ต่อไปนี้คือเนมสเปซสามหมวดหมู่
-
เนมสเปซท้องถิ่น:ชื่อฟังก์ชันและตัวแปรทั้งหมดที่ประกาศโดยโปรแกรมจะอยู่ในเนมสเปซนี้ เนมสเปซนี้มีอยู่ตราบใดที่โปรแกรมทำงาน
-
เนมสเปซสากล:เนมสเปซนี้เก็บชื่อฟังก์ชันและตัวแปรอื่น ๆ ทั้งหมดที่รวมอยู่ในโมดูลที่ใช้ในโปรแกรมหลาม ประกอบด้วยชื่อทั้งหมดที่เป็นส่วนหนึ่งของ Local namespace
-
เนมสเปซในตัว:นี่คือเนมสเปซระดับสูงสุดที่พร้อมใช้งานโดยมีชื่อเริ่มต้นซึ่งเป็นส่วนหนึ่งของล่ามหลามที่โหลดเป็นสภาพแวดล้อมการเขียนโปรแกรม มันรวม Global Namespace ซึ่งรวม Namespace ในเครื่อง
ขอบเขตในภาษาไพทอน
เนมสเปซจะมีอายุการใช้งานเมื่อพร้อมใช้งาน ที่เรียกว่าขอบเขต ขอบเขตจะขึ้นอยู่กับขอบเขตการเข้ารหัสที่ตัวแปรหรืออ็อบเจกต์ตั้งอยู่ คุณสามารถเห็นในโปรแกรมด้านล่างว่าตัวแปรที่ประกาศในวงในนั้นมีให้สำหรับวงรอบนอกอย่างไร แต่ไม่ใช่ในทางกลับกัน นอกจากนี้ โปรดทราบว่าชื่อของฟังก์ชันภายนอกจะกลายเป็นส่วนหนึ่งของตัวแปรส่วนกลางอย่างไร
ตัวอย่าง
prog_var = 'Hello' def outer_func(): outer_var = 'x' def inner_func(): inner_var = 'y' print(dir(), ' Local Variable in Inner function') inner_func() print(dir(), 'Local variables in outer function') outer_func() print(dir(), 'Global variables ')
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
ผลลัพธ์
['inner_var'] Local Variable in Inner function ['inner_func', 'outer_var'] Local variables in outer function ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'outer_func', 'prog_var'] Global variables