الدالة 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})
انظر أيضًا
- القواميس في بايثون.
- types.MappingProxyType.
- الدالة
locals(): تحدث قاموسًا يُمثّل جدول الرموز المحليّ وتُعيده.