4 ฟังก์ชันสำหรับ Inspect Namespace/Scope
globals() vs locals()
globals()→ Dict ของ Global Namespace (Module Level)locals()→ Dict ของ Local Namespace (Function Scope)- ที่ Global Scope:
globals() is locals() == True
ตัวอย่างใน Function
def fun():
var = 123
print("Locals:", locals()) # {'var': 123}
print("Globals:", globals()) # Module Globals (มี __name__, __builtins__, fun, ...)
fun()
vars()
vars()→ เท่ากับlocals()(ถ้าไม่มี Argument)vars(obj)→obj.__dict__(Instance/Class/Module Dictionary)
dir()
dir()→ List ของ Names ใน Current Scope (Sorted)dir(obj)→ List Attributes ของ Object (รวม Inherited)- ใช้ Interactive Exploration
สรุป
| Func | Return | Scope | Argument |
|---|---|---|---|
| globals() | dict | Global | No |
| locals() | dict | Local | No |
| vars() | dict | Local/Object | Optional (Object) |
| dir() | list[str] | Current/Object | Optional (Object) |