الفرق بين المراجعتين لصفحة: «Python/pprint/pprint»

من موسوعة حسوب
< Python‏ | pprint
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>pprint.pprint()‎</code> في بايثون}}</noinclude> تطبع الدالة التمثيل المنسّق للكائن...'
 
لا ملخص تعديل
 
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:التابع <code>pprint.pprint()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>pprint.pprint()‎</code> في بايثون}}</noinclude>
تطبع الدالة التمثيل المنسّق للكائن المعطى في المخرجات المعطاة، متبوعًا بسطر جديد.  
تطبع الدالة التمثيل المنسّق للكائن المعطى في المخرجات المعطاة، متبوعًا بسطر جديد.  


سطر 9: سطر 9:


== المعاملات ==
== المعاملات ==
إن أخذ المعامل stream القيمة None فستستخدم الدالة sys.stdout. يمكن استخدام هذه الدالة في مفسر بايثون التفاعلي عوضًا عن الدالة print()‎ لتفحّص القيم (يمكن كذلك إعادة إسناد print = pprint.pprint لاستخدامها ضمن نطاق معين).  
إن أخذ المعامل <code>stream</code> القيمة <code>None</code> فستستخدم الدالة <code>sys.stdout</code>. يمكن استخدام هذه الدالة في مفسر بايثون التفاعلي عوضًا عن الدالة <code>[[Python/print|print()‎]]</code> لتفحّص القيم (يمكن كذلك إعادة إسناد <code>print = pprint.pprint</code> لاستخدامها ضمن نطاق معين).  


تُمرّر المعاملات indent و width و depth و compact إلى الدالة البانية للصنف PrettyPrinter كمعاملات تنسيق.
تُمرّر المعاملات <code>indent</code> و <code>width</code> و <code>depth</code> و <code>compact</code> إلى الدالة البانية للصنف <code>[[Python/pprint/PrettyPrinter|PrettyPrinter]]</code> كمعاملات تنسيق.


'''ملاحظة:''' أضيف المعامل <code>compact</code> في الإصدار 3.4 من اللغة.
'''ملاحظة:''' أضيف المعامل <code>compact</code> في الإصدار 3.4 من اللغة.


== القيمة المعادة ==
== القيمة المعادة ==
تعيد الدالة التمثيل المنسّق للكائن المعطى على هيئة [[Python/str|سلسلة نصية]].
تطبع الدالة التمثيل المنسّق للكائن المعطى في المخرجات المعطاة، متبوعًا بسطر جديد.


== أمثلة ==
== أمثلة ==
سطر 33: سطر 33:
  'knights',
  'knights',
  'ni']
  'ni']
</syntaxhighlight>يبين المثال التالي عددًا استخدامات الدالة <code>pprint()‎</code> ومعاملاتها، عن طريق جلب معلومات أحد المشاريع في PyPI:<syntaxhighlight lang="python3">
>>> import json
>>> import pprint
>>> from urllib.request import urlopen
>>> with urlopen('http://pypi.org/project/Twisted/json') as url:
...    http_info = url.info()
...    raw_data = url.read().decode(http_info.get_content_charset())
>>> project_info = json.loads(raw_data)
</syntaxhighlight>يؤدي استخدام الدالة <code>pprint()‎</code> بصيغتها الأساسية إلى عرض الكائن برمّته:<syntaxhighlight lang="python3">
>>> pprint.pprint(project_info)
{'info': {'_pypi_hidden': False,
          '_pypi_ordering': 125,
          'author': 'Glyph Lefkowitz',
          'author_email': 'glyph@twistedmatrix.com',
          'bugtrack_url': '',
          'cheesecake_code_kwalitee_id': None,
          'cheesecake_documentation_id': None,
          'cheesecake_installability_id': None,
          'classifiers': ['Programming Language :: Python :: 2.6',
                          'Programming Language :: Python :: 2.7',
                          'Programming Language :: Python :: 2 :: Only'],
          'description': 'An extensible framework for Python programming, with '
                        'special focus\r\n'
                        'on event-based network programming and multiprotocol '
                        'integration.',
          'docs_url': '',
          'download_url': 'UNKNOWN',
          'home_page': 'http://twistedmatrix.com/',
          'keywords': '',
          'license': 'MIT',
          'maintainer': '',
          'maintainer_email': '',
          'name': 'Twisted',
          'package_url': 'http://pypi.org/project/Twisted',
          'platform': 'UNKNOWN',
          'release_url': 'http://pypi.org/project/Twisted/12.3.0',
          'requires_python': None,
          'stable_version': None,
          'summary': 'An asynchronous networking framework written in Python',
          'version': '12.3.0'},
'urls': [{'comment_text': '',
          'downloads': 71844,
          'filename': 'Twisted-12.3.0.tar.bz2',
          'has_sig': False,
          'md5_digest': '6e289825f3bf5591cfd670874cc0862d',
          'packagetype': 'sdist',
          'python_version': 'source',
          'size': 2615733,
          'upload_time': '2012-12-26T12:47:03',
          'url': 'https://pypi.org/packages/source/T/Twisted/Twisted-12.3.0.tar.bz2'},
          {'comment_text': '',
          'downloads': 5224,
          'filename': 'Twisted-12.3.0.win32-py2.7.msi',
          'has_sig': False,
          'md5_digest': '6b778f5201b622a5519a2aca1a2fe512',
          'packagetype': 'bdist_msi',
          'python_version': '2.7',
          'size': 2916352,
          'upload_time': '2012-12-26T12:48:15',
          'url': 'https://pypi.org/packages/2.7/T/Twisted/Twisted-12.3.0.win32-py2.7.msi'}]}
</syntaxhighlight>يمكن تحديد النتيجة إلى عمق معين (تستخدم النقاط <code>...</code> لتمثيل المحتوى الأعمق):<syntaxhighlight lang="python3">
>>> pprint.pprint(project_info, depth=2)
{'info': {'_pypi_hidden': False,
          '_pypi_ordering': 125,
          'author': 'Glyph Lefkowitz',
          'author_email': 'glyph@twistedmatrix.com',
          'bugtrack_url': '',
          'cheesecake_code_kwalitee_id': None,
          'cheesecake_documentation_id': None,
          'cheesecake_installability_id': None,
          'classifiers': [...],
          'description': 'An extensible framework for Python programming, with '
                        'special focus\r\n'
                        'on event-based network programming and multiprotocol '
                        'integration.',
          'docs_url': '',
          'download_url': 'UNKNOWN',
          'home_page': 'http://twistedmatrix.com/',
          'keywords': '',
          'license': 'MIT',
          'maintainer': '',
          'maintainer_email': '',
          'name': 'Twisted',
          'package_url': 'http://pypi.org/project/Twisted',
          'platform': 'UNKNOWN',
          'release_url': 'http://pypi.org/project/Twisted/12.3.0',
          'requires_python': None,
          'stable_version': None,
          'summary': 'An asynchronous networking framework written in Python',
          'version': '12.3.0'},
'urls': [{...}, {...}]}
</syntaxhighlight>إضافة لما سبق، يمكن تحديد أقصى عدد للحروف في السطر الواحد. إن كان الكائن طويلًا ولا يمكن تقسيمه فستتجاوز الدالة العرض المحدد:<syntaxhighlight lang="python3">
>>> pprint.pprint(project_info, depth=2, width=50)
{'info': {'_pypi_hidden': False,
          '_pypi_ordering': 125,
          'author': 'Glyph Lefkowitz',
          'author_email': 'glyph@twistedmatrix.com',
          'bugtrack_url': '',
          'cheesecake_code_kwalitee_id': None,
          'cheesecake_documentation_id': None,
          'cheesecake_installability_id': None,
          'classifiers': [...],
          'description': 'An extensible '
                        'framework for Python '
                        'programming, with '
                        'special focus\r\n'
                        'on event-based network '
                        'programming and '
                        'multiprotocol '
                        'integration.',
          'docs_url': '',
          'download_url': 'UNKNOWN',
          'home_page': 'http://twistedmatrix.com/',
          'keywords': '',
          'license': 'MIT',
          'maintainer': '',
          'maintainer_email': '',
          'name': 'Twisted',
          'package_url': 'http://pypi.org/project/Twisted',
          'platform': 'UNKNOWN',
          'release_url': 'http://pypi.org/project/Twisted/12.3.0',
          'requires_python': None,
          'stable_version': None,
          'summary': 'An asynchronous networking '
                    'framework written in '
                    'Python',
          'version': '12.3.0'},
'urls': [{...}, {...}]}
</syntaxhighlight>
</syntaxhighlight>



المراجعة الحالية بتاريخ 19:08، 20 أغسطس 2018

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

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

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

المعاملات

إن أخذ المعامل stream القيمة None فستستخدم الدالة sys.stdout. يمكن استخدام هذه الدالة في مفسر بايثون التفاعلي عوضًا عن الدالة print()‎ لتفحّص القيم (يمكن كذلك إعادة إسناد print = pprint.pprint لاستخدامها ضمن نطاق معين).

تُمرّر المعاملات indent و width و depth و compact إلى الدالة البانية للصنف PrettyPrinter كمعاملات تنسيق.

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

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

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

أمثلة

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

>>> import pprint
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
>>> stuff.insert(0, stuff)
>>> pprint.pprint(stuff)
[<Recursion on list with id=...>,
 'spam',
 'eggs',
 'lumberjack',
 'knights',
 'ni']

يبين المثال التالي عددًا استخدامات الدالة pprint()‎ ومعاملاتها، عن طريق جلب معلومات أحد المشاريع في PyPI:

>>> import json
>>> import pprint
>>> from urllib.request import urlopen
>>> with urlopen('http://pypi.org/project/Twisted/json') as url:
...     http_info = url.info()
...     raw_data = url.read().decode(http_info.get_content_charset())
>>> project_info = json.loads(raw_data)

يؤدي استخدام الدالة pprint()‎ بصيغتها الأساسية إلى عرض الكائن برمّته:

>>> pprint.pprint(project_info)
{'info': {'_pypi_hidden': False,
          '_pypi_ordering': 125,
          'author': 'Glyph Lefkowitz',
          'author_email': 'glyph@twistedmatrix.com',
          'bugtrack_url': '',
          'cheesecake_code_kwalitee_id': None,
          'cheesecake_documentation_id': None,
          'cheesecake_installability_id': None,
          'classifiers': ['Programming Language :: Python :: 2.6',
                          'Programming Language :: Python :: 2.7',
                          'Programming Language :: Python :: 2 :: Only'],
          'description': 'An extensible framework for Python programming, with '
                         'special focus\r\n'
                         'on event-based network programming and multiprotocol '
                         'integration.',
          'docs_url': '',
          'download_url': 'UNKNOWN',
          'home_page': 'http://twistedmatrix.com/',
          'keywords': '',
          'license': 'MIT',
          'maintainer': '',
          'maintainer_email': '',
          'name': 'Twisted',
          'package_url': 'http://pypi.org/project/Twisted',
          'platform': 'UNKNOWN',
          'release_url': 'http://pypi.org/project/Twisted/12.3.0',
          'requires_python': None,
          'stable_version': None,
          'summary': 'An asynchronous networking framework written in Python',
          'version': '12.3.0'},
 'urls': [{'comment_text': '',
           'downloads': 71844,
           'filename': 'Twisted-12.3.0.tar.bz2',
           'has_sig': False,
           'md5_digest': '6e289825f3bf5591cfd670874cc0862d',
           'packagetype': 'sdist',
           'python_version': 'source',
           'size': 2615733,
           'upload_time': '2012-12-26T12:47:03',
           'url': 'https://pypi.org/packages/source/T/Twisted/Twisted-12.3.0.tar.bz2'},
          {'comment_text': '',
           'downloads': 5224,
           'filename': 'Twisted-12.3.0.win32-py2.7.msi',
           'has_sig': False,
           'md5_digest': '6b778f5201b622a5519a2aca1a2fe512',
           'packagetype': 'bdist_msi',
           'python_version': '2.7',
           'size': 2916352,
           'upload_time': '2012-12-26T12:48:15',
           'url': 'https://pypi.org/packages/2.7/T/Twisted/Twisted-12.3.0.win32-py2.7.msi'}]}

يمكن تحديد النتيجة إلى عمق معين (تستخدم النقاط ... لتمثيل المحتوى الأعمق):

>>> pprint.pprint(project_info, depth=2)
{'info': {'_pypi_hidden': False,
          '_pypi_ordering': 125,
          'author': 'Glyph Lefkowitz',
          'author_email': 'glyph@twistedmatrix.com',
          'bugtrack_url': '',
          'cheesecake_code_kwalitee_id': None,
          'cheesecake_documentation_id': None,
          'cheesecake_installability_id': None,
          'classifiers': [...],
          'description': 'An extensible framework for Python programming, with '
                         'special focus\r\n'
                         'on event-based network programming and multiprotocol '
                         'integration.',
          'docs_url': '',
          'download_url': 'UNKNOWN',
          'home_page': 'http://twistedmatrix.com/',
          'keywords': '',
          'license': 'MIT',
          'maintainer': '',
          'maintainer_email': '',
          'name': 'Twisted',
          'package_url': 'http://pypi.org/project/Twisted',
          'platform': 'UNKNOWN',
          'release_url': 'http://pypi.org/project/Twisted/12.3.0',
          'requires_python': None,
          'stable_version': None,
          'summary': 'An asynchronous networking framework written in Python',
          'version': '12.3.0'},
 'urls': [{...}, {...}]}

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

>>> pprint.pprint(project_info, depth=2, width=50)
{'info': {'_pypi_hidden': False,
          '_pypi_ordering': 125,
          'author': 'Glyph Lefkowitz',
          'author_email': 'glyph@twistedmatrix.com',
          'bugtrack_url': '',
          'cheesecake_code_kwalitee_id': None,
          'cheesecake_documentation_id': None,
          'cheesecake_installability_id': None,
          'classifiers': [...],
          'description': 'An extensible '
                         'framework for Python '
                         'programming, with '
                         'special focus\r\n'
                         'on event-based network '
                         'programming and '
                         'multiprotocol '
                         'integration.',
          'docs_url': '',
          'download_url': 'UNKNOWN',
          'home_page': 'http://twistedmatrix.com/',
          'keywords': '',
          'license': 'MIT',
          'maintainer': '',
          'maintainer_email': '',
          'name': 'Twisted',
          'package_url': 'http://pypi.org/project/Twisted',
          'platform': 'UNKNOWN',
          'release_url': 'http://pypi.org/project/Twisted/12.3.0',
          'requires_python': None,
          'stable_version': None,
          'summary': 'An asynchronous networking '
                     'framework written in '
                     'Python',
          'version': '12.3.0'},
 'urls': [{...}, {...}]}

انظر أيضًا

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

مصادر

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