الفرق بين المراجعتين ل"Python/pprint/PrettyPrinter"

من موسوعة حسوب
< Python‏ | pprint
اذهب إلى التنقل اذهب إلى البحث
ط (نقل Mohammed Taher صفحة Python/PrettyPrinter إلى Python/pprint/PrettyPrinter)
سطر 12: سطر 12:
  
 
===<code>indent</code>===
 
===<code>indent</code>===
يُحدّد مقدار الإزاحة المضافة لكل مستوى تعاودي عن طريق المعامل indent الذي يأخذ القيمة 1 كقيمة افتراضية. قد تظهر المخرجات بمظهر غريب أحيانًا عند استخدام قيم أخرى لهذا المعامل، ولكن يمكن بسهولة تمييز النتائج المتشعّبة.
+
يُحدّد مقدار الإزاحة المضافة لكل مستوى تعاودي عن طريق المعامل <code>indent</code> الذي يأخذ القيمة <code>1</code> كقيمة افتراضية. قد تظهر المخرجات بمظهر غريب أحيانًا عند استخدام قيم أخرى لهذا المعامل، ولكن يمكن بسهولة تمييز النتائج المتشعّبة.
  
 
===<code>width</code>===
 
===<code>width</code>===
تحدّد قيمة هذا المعامل مقدار العرض المسموح به للمخرجات، والقيمة الافتراضية هي 80 حرفًا، وإن لم يكن بالإمكان تنسيق بنية من بنى البيانات ضمن هذا المقدار، فسيحاول الكائن عرض المخرجات بأفضل صورة ممكنة.
+
تحدّد قيمة هذا المعامل مقدار العرض المسموح به للمخرجات، والقيمة الافتراضية هي <code>80</code> حرفًا، وإن لم يكن بالإمكان تنسيق بنية من بنى البيانات ضمن هذا المقدار، فسيحاول الكائن عرض المخرجات بأفضل صورة ممكنة.
  
 
===<code>depth</code>===
 
===<code>depth</code>===
يمكن التحكم في عدد المستويات التي يمكن طباعتها بواسطة هذا المعامل. إن كانت بنية البيانات المراد طباعتها عميقة جدًّا، فإنّ المستوى التالي لها سيُستبدل بنقاط (...). ليس هناك قيود -بصورة افتراضية- تحدّد عمق الكائنات التي يجري تنسيقها.
+
يمكن التحكم في عدد المستويات التي يمكن طباعتها بواسطة هذا المعامل. إن كانت بنية البيانات المراد طباعتها عميقة جدًّا، فإنّ المستوى التالي لها سيُستبدل بنقاط (<code>...</code>). ليس هناك قيود -بصورة افتراضية- تحدّد عمق الكائنات التي يجري تنسيقها.
  
 
===<code>stream</code>===
 
===<code>stream</code>===
يمكن تعيين دفق المخرجات باستخدام الكلمة المفتاحية stream، والتابع write()‎ الخاصّ ببروتوكول الملفات هو التابع الوحيد الذي يُستخدم على كائن stream. وإن لم تعيّن أي قيمة لهذا المعامل فإنّ الصنف كائن PrettyPrinter يعتمد sys.stdout كبديل.
+
يمكن تعيين دفق المخرجات باستخدام الكلمة المفتاحية <code>stream</code>، والتابع <code>write()</code>‎ الخاصّ ببروتوكول الملفات هو التابع الوحيد الذي يُطبَّق كائن <code>stream</code>. وإن لم تعيّن أي قيمة لهذا المعامل فإنّ كائن <code>PrettyPrinter</code> سيعتمد <code>sys.stdout</code> كبديل.
  
 
===<code>compact</code>===
 
===<code>compact</code>===
إن أخذ هذا المعامل القيمة False (وهي القيمة الافتراضية) فإنّ كل عنصر من عناصر تسلسل طويل سيُنسّق في سطر منفرد. أما إن أخذ القيمة True فسُينسّق العدد الذي يلائم العرض الملائم والمحدّد بواسطة المعامل width في كل سطر من أسطر المخرجات.
+
إن أخذ هذا المعامل القيمة <code>False</code> (وهي القيمة الافتراضية) فإنّ كل عنصر من عناصر تسلسل طويل سيُنسّق في سطر منفرد. أما إن أخذ القيمة <code>True</code> فسُينسّق العدد الذي يلائم العرض الملائم والمحدّد بواسطة المعامل <code>width</code> في كل سطر من أسطر المخرجات.
 +
 
 
'''ملاحظة:''' أضيف هذا المعامل في الإصدار 3.4 من اللغة.
 
'''ملاحظة:''' أضيف هذا المعامل في الإصدار 3.4 من اللغة.
  
== أمثلة ==
+
== توابع كائنات PrettyPrinter ==
 
 
يبين المثال التالي طريقة تهيئة كائن PrettyPrinter باستخدام الدالة البانية:
 
 
 
<syntaxhighlight lang="python3">
 
‎>>> import pprint
 
>>> pp = pprint.PrettyPrinter(width=41, compact=True)
 
</syntaxhighlight>
 
  
 +
=== التابع <code>[[Python/PrettyPrinter/pformat|PrettyPrinter.pformat()‎]]</code>===
 +
يعيد التابع التمثيل المنسّق للكائن المعطى.
 +
===التابع <code>[[Python/PrettyPrinter/pprint|PrettyPrinter.pprint()‎]]</code>===
 +
يطبع التابع التمثيل المنسّق للكائن المعطى على المخرجات المحدّدة في الدالة البانية للصنف [[Python/PrettyPrinter|<code>PrettyPrinter</code>]] متبوعًا بسطر جديد.
 +
===التابع <code>[[Python/PrettyPrinter/isreadable|PrettyPrinter.isreadable()‎]]</code>===
 +
يحدّد التابع ما إذا كان التمثيل المنسّق للكائن المعطى "قابلًا للقراءة" أو يمكن استخدامه لإعادة بناء القيمة باستخدام الدالة <code>[[Python/eval|eval()‎]]</code>.
 +
===التابع <code>[[Python/PrettyPrinter/isrecursive|PrettyPrinter.isrecursive()‎]]</code>===
 +
يحدّد التابع ما إذا كان الكائن المعطى يتطلب تمثيلًا تعاوديًا.
 +
===التابع <code>[[Python/PrettyPrinter/format|PrettyPrinter.format()‎]]</code>===
 +
يعيد التابع نسخة للكائن المعطى تكون على هيئة [[Python/str|سلسلة نصية]]، وراية تحدد ما إذا كانت النتيجة قابلة للقراءة وراية أخرى تحدّد ما إذا تمكن التابع من اكتشاف حالة تعاود في النتيجة.
 
== انظر أيضًا ==
 
== انظر أيضًا ==
 +
* الوحدة <code>[[Python/pprint|pprint]]</code> في بايثون: تتيح الوحدة إمكانية طباعة بنى البيانات في بايثون بصورة جميلة pretty-print.
  
 
== مصادر ==
 
== مصادر ==

مراجعة 09:07، 20 أغسطس 2018


الصنف الوحيد الذي تقدمه الوحدة pprint وتقدّم نسخ هذا الصنف عددًا من التوابع التي يمكن الاستفادة منها في طباعة المخرجات بصورة منسّقة وجميلة.

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

pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False)

المعاملات

indent

يُحدّد مقدار الإزاحة المضافة لكل مستوى تعاودي عن طريق المعامل indent الذي يأخذ القيمة 1 كقيمة افتراضية. قد تظهر المخرجات بمظهر غريب أحيانًا عند استخدام قيم أخرى لهذا المعامل، ولكن يمكن بسهولة تمييز النتائج المتشعّبة.

width

تحدّد قيمة هذا المعامل مقدار العرض المسموح به للمخرجات، والقيمة الافتراضية هي 80 حرفًا، وإن لم يكن بالإمكان تنسيق بنية من بنى البيانات ضمن هذا المقدار، فسيحاول الكائن عرض المخرجات بأفضل صورة ممكنة.

depth

يمكن التحكم في عدد المستويات التي يمكن طباعتها بواسطة هذا المعامل. إن كانت بنية البيانات المراد طباعتها عميقة جدًّا، فإنّ المستوى التالي لها سيُستبدل بنقاط (...). ليس هناك قيود -بصورة افتراضية- تحدّد عمق الكائنات التي يجري تنسيقها.

stream

يمكن تعيين دفق المخرجات باستخدام الكلمة المفتاحية stream، والتابع write()‎ الخاصّ ببروتوكول الملفات هو التابع الوحيد الذي يُطبَّق كائن stream. وإن لم تعيّن أي قيمة لهذا المعامل فإنّ كائن PrettyPrinter سيعتمد sys.stdout كبديل.

compact

إن أخذ هذا المعامل القيمة False (وهي القيمة الافتراضية) فإنّ كل عنصر من عناصر تسلسل طويل سيُنسّق في سطر منفرد. أما إن أخذ القيمة True فسُينسّق العدد الذي يلائم العرض الملائم والمحدّد بواسطة المعامل width في كل سطر من أسطر المخرجات.

ملاحظة: أضيف هذا المعامل في الإصدار 3.4 من اللغة.

توابع كائنات PrettyPrinter

 التابع PrettyPrinter.pformat()‎

يعيد التابع التمثيل المنسّق للكائن المعطى.

التابع PrettyPrinter.pprint()‎

يطبع التابع التمثيل المنسّق للكائن المعطى على المخرجات المحدّدة في الدالة البانية للصنف PrettyPrinter متبوعًا بسطر جديد.

التابع PrettyPrinter.isreadable()‎

يحدّد التابع ما إذا كان التمثيل المنسّق للكائن المعطى "قابلًا للقراءة" أو يمكن استخدامه لإعادة بناء القيمة باستخدام الدالة eval()‎.

التابع PrettyPrinter.isrecursive()‎

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

التابع PrettyPrinter.format()‎

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

انظر أيضًا

  • الوحدة pprint في بايثون: تتيح الوحدة إمكانية طباعة بنى البيانات في بايثون بصورة جميلة pretty-print.

مصادر