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

من موسوعة حسوب
< Python‏ | pprint
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>pprint.pprint()‎</code> في بايثون}}</noinclude> تطبع الدالة التمثيل المنسّق للكائن...')
 
 
(مراجعتان متوسطتان بواسطة نفس المستخدم غير معروضتين)
سطر 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 في توثيق بايثون الرسمي.