locals() आपको स्थानीय दायरे में घोषित चरों का शब्दकोश देता है जबकि Globals() आपको वैश्विक दायरे में घोषित चरों का शब्दकोश देता है। वैश्विक दायरे में, स्थानीय () और ग्लोबल्स () दोनों एक ही शब्दकोश को वैश्विक नामस्थान पर लौटाते हैं। दो कार्यों के बीच अंतर को नोटिस करने के लिए, आप उन्हें किसी फ़ंक्शन के भीतर से कॉल कर सकते हैं। उदाहरण के लिए,
def fun(): var = 123 print "Locals: ", locals() print "Vars: ", vars() print "Globals: ", globals() fun()
यह आउटपुट देगा:
Locals: {'var': 123} Globals: {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'fun': <function fun at 0x00000000 037E3DD8>, '__doc__': None, '__package__': None}
vars() या तो वर्तमान नामस्थान का एक शब्दकोश देता है (यदि बिना किसी तर्क के कहा जाता है) या तर्क का शब्दकोश। स्थानीय () और vars () के बीच मुख्य अंतर यह है कि vars () अनुरोधित वस्तु के लिए एक तर्क और वापसी शब्दकोश भी ले सकता है। उदाहरण के लिए, यदि आप किसी dict में किसी ऑब्जेक्ट की विशेषताएँ चाहते हैं, तो आप उस ऑब्जेक्ट को पास कर सकते हैं और उस उदाहरण के लिए dict विशेषता प्राप्त कर सकते हैं।
ऑब्जेक्ट के लिए vars() फ़ंक्शन समान ऑब्जेक्ट के लिए __dict__ प्रॉपर्टी के समान है। __dict__ वस्तु के लिए सभी परिभाषित विशेषता देता है। उदाहरण के लिए,
class A(): def __init__(self, id): self.id = id a = A(1) print "__dict__: ", a.__dict__ print "vars(a): ", vars(a)
यह आउटपुट देगा:
__dict__: {'id': 1} vars(a): {'id': 1}