الدالة vars()
في بايثون
تعيد الدّالة vars()
قيمة الخاصيّة __dict__
الخاصّة بوحدة، أو صنف، أو نُسخة، أو أيّ كائن يمتلك خاصيّةً باسم __dict__
.
تملك الكائنات مثل الوحدات والنّسخ خاصيّة __dict__
يُمكن تحديثها، لكنّ كائنات أخرى قد تفرض قيودًا على خاصيّة __dict__
الخاصّة بها (فمثلا، يُمكن للأصناف استعمال النّوع types.MappingProxyType
لمنع تحديث القاموس مُباشرةً).
البنية العامة
vars([object])
المعاملات
object
مُعامل اختياريّ يُمثّل الكائن المرغوب الحصول على قيمة الخاصيّة __dict__
الخاصّة به.
القيمة المعادة
قيمة الخاصيّة __dict__
الخاصّة بالكائن، وتُمثّل قيمته قاومسًا يحتوي على خاصيّات الكائن القابلة للكتابة.
إن لم تُمرّر للدّالة أيّة مُعاملات، فاستدعاؤها مُشابه لاستدعاء الدّالة locals()
. لكن لاحظ أنّ قاموس المتغيّرات المحليّة locals()
مُفيد للقراءة فقط لأنّ مُحاولات تحديثه تُتَجاهَل.
أمثلة
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:
>>> class A:
... x = 1
...
...
>>> vars(A)
mappingproxy({'__module__': '__console__', 'x': 1, '__dict__': <attribute '__dict__' of 'A' obj
ects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None})