locals() আপনাকে স্থানীয় স্কোপে ঘোষিত ভেরিয়েবলের একটি অভিধান প্রদান করে যখন globals() আপনাকে বৈশ্বিক সুযোগে ঘোষিত ভেরিয়েবলের অভিধান প্রদান করে। বিশ্বব্যাপী সুযোগে, উভয় স্থানীয় () এবং 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() একটি আর্গুমেন্ট নিতে পারে এবং অনুরোধ করা বস্তুর জন্য অভিধান ফেরত দিতে পারে। উদাহরণস্বরূপ, আপনি যদি একটি ডিক্টে একটি বস্তুর বৈশিষ্ট্যগুলি চান, আপনি সেই বস্তুটিকে পাস করতে পারেন এবং সেই উদাহরণের জন্য বৈশিষ্ট্যগুলি পেতে পারেন৷
অবজেক্টের জন্য 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}