الدالة pprint.pprint()
في بايثون
تطبع الدالة التمثيل المنسّق للكائن المعطى في المخرجات المعطاة، متبوعًا بسطر جديد.
البنية العامة
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 متبوعًا بسطر جديد..