التابع PrettyPrinter.format()‎ في بايثون

من موسوعة حسوب
مراجعة 13:54، 20 أغسطس 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>PrettyPrinter.format()‎</code> في بايثون}}</noinclude> يحدّد التابع ما إذا كان الكائن ا...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يحدّد التابع ما إذا كان الكائن المعطى يتطلب تمثيلًا تعاوديًا recursive.

البنية العامة

PrettyPrinter.format(object, context, maxlevels, level)

المعاملات

object

الكائن المراد تمثيله.

context

قاموس يحتوي على معرّف id()‎ الكائنات التي تمثّل جزءًا من سياق التمثيل الحالي (حاويات مباشرة أو غير مباشرة للكائن المعطى والتي تؤثّر على عملية التمثيل) كمفاتيح في القاموس. إن احتاج كائن معيّن إلى التنسيق وهو ممثّل ضمن السياق، فإنّ القيمة االثالثة المعادة من هذا التابع تكون True. يجب أن تضيف الاستدعاءات التعاودية للتابع format()‎ عناصر الحاويات الإضافية إلى هذا القاموس.

maxlevels

يحدّد مقدار التعاود المطلوب، ويأخذ القيمة 0 إن لم يحدّد المقدار المطلوب. يجب تمرير هذا المعامل دون تعديل إلى الاستدعاءات التعاودية.

level

يعطي هذا المعامل المستوى الحالي، ويجب تمرير قيمة إلى الاستدعاءات التعاودية تكون أقل من قيمة الاستدعاء الحالي.

القيمة المعادة

يعيد التابع ثلاث قيم هي:

1- النسخة المنسّقة على هيئة سلسلة نصية للكائن المعطى. 2- راية تحدّد ما إذا كانت النتيجة قابلة للقراءة. 3- راية تحدّد ما إذا كشف التابع عن وجود حالة تعاود.

أمثلة

يبين المثال التالي آلية عمل التابع:

>>> import pprint
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
>>> stuff.insert(0, stuff)
>>> pp = pprint.PrettyPrinter(indent=4)
>>> pp.pprint(stuff)
[   <Recursion on list with id=140108600272328>,
    'spam',
    'eggs',
    'lumberjack',
    'knights',
    'ni']
>>> pp.isrecursive(stuff)
True

مصادر

صفحة Data pretty printer في توثيق بايثون الرسمي.