الدالة 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})

انظر أيضًا

مصادر