CLI-подобный дамп Python - PullRequest
       7

CLI-подобный дамп Python

1 голос
/ 20 апреля 2011

Когда я использую python в интерактивной оболочке, я могу легко создавать дамп переменных, просто вызывая их имена.

>>> x = b'\xA5'
>>> x
'\xa5'
>>> print x
▒

Как видите, поведение отличается от поведения print. Как мне эмулировать этот CLI-подобный дамп переменной в обычных скриптах?

Ответы [ 3 ]

5 голосов
/ 20 апреля 2011

Используйте встроенную функцию repr():

>>> x = '\xa5'
>>> print repr(x)
'\xa5'
2 голосов
/ 20 апреля 2011
>>> x = b'\xA5'
>>> print repr(x)
'\xa5'
1 голос
/ 20 апреля 2011

Каждый класс может специализировать свое представление, используя специальный метод __repr__.

Например:

>>> class Banana:
...     def __repr__(self):
...             return "Fruit: Banana"
...
>>> Banana()
Fruit: Banana

Следует отметить, что интерактивное приглашение становится очень раздражительным (и Python вВообще) если вы возвращаете что-то, кроме строки.

Он также должен представлять допустимое выражение Python, если это вообще возможно.Так что мой пример не соответствует.Если правильное выражение невозможно, документы рекомендуют <something descriptive>.Вы можете увидеть пример этого на практике, если получите представление класса:

>>> Banana
<class '__main__.Banana'>

Этот специальный метод - то, что repr и интерактивное приглашение используют для отображения «представления» объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...