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

ความต่าง dir(), globals(), locals(), vars() ใน Python

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

สรุป

FuncReturnScopeArgument
globals()dictGlobalNo
locals()dictLocalNo
vars()dictLocal/ObjectOptional (Object)
dir()list[str]Current/ObjectOptional (Object)