Namespace Inspection Functions की तुलना
locals()
Local Scope में Declared Variables का Dictionary Return करता है।
globals()
Global Scope में Declared Variables का Dictionary Return करता है।
Global Scope पर:
Global Scope पर, locals() और globals() दोनों Global Namespace के लिए Same Dictionary Return करते हैं।
Difference देखने के लिए: Function के अंदर से Call करें
def fun():
var = 123
print("Locals:", locals())
print("Vars:", vars())
print("Globals:", globals())
fun()
Output:
Locals: {'var': 123}
Globals: {'__builtins__': , '__name__': '__main__', 'fun': , '__doc__': None, '__package__': None}
vars() Function
vars() या तो Current Namespace का Dictionary Return करता है (यदि No Argument के साथ Call किया गया) या Argument का Dictionary। locals() और vars() के बीच Main Difference यह है कि vars() Argument भी ले सकता है और Requested Object के लिए Dictionary Return कर सकता है।
उदाहरण: Object के Attributes प्राप्त करना
class A:
def __init__(self, id):
self.id = id
a = A(1)
print("__dict__:", a.__dict__)
print("vars(a):", vars(a))
Output:
__dict__: {'id': 1}
vars(a): {'id': 1}
Summary Table:
| Function | Scope | Arguments |
|---|---|---|
locals() |
Local | No |
globals() |
Global | No |
vars() |
Current/Object | Optional (Object) |
dir() |
Object/Module | Optional |
dir() Object के Valid Attributes की List Return करता है (Dictionary नहीं)।