Подтвердить что ты не робот

Что такое эквивалент Python Ruby "проверять"?

Я просто хочу быстро увидеть свойства и значения объекта в Python, как это сделать в терминале на Mac (очень простой материал, никогда не используемый python)?

В частности, я хочу посмотреть, что message.attachments находится в этом примере Google App Engine MailHandler (изображения, видео, документы и т.д.)..

4b9b3361

Ответ 1

используйте атрибут getmembers модуля inspect

Он вернет список кортежей (key, value). Он получает значение от obj.__dict__, если доступно, и использует getattr, если в obj.__dict__ нет соответствующей записи. Это может спасти вас от написания нескольких строк кода для этой цели.

Ответ 2

Если вы хотите сбросить весь объект, вы можете использовать модуль pprint, чтобы получить его довольно печатную версию.

from pprint import pprint

pprint(my_object)

# If there are many levels of recursion, and you don't want to see them all
# you can use the depth parameter to limit how many levels it goes down
pprint(my_object, depth=2)

Изменить: Возможно, я неправильно понял, что вы подразумеваете под "объектом" - если вы хотите посмотреть экземпляры класса, в отличие от базовых структур данных, таких как dicts, вы можете посмотреть на inspect.

Ответ 3

Обновление

Есть лучшие способы сделать это, чем dir. См. Другие ответы.

Оригинальный ответ

Используйте встроенную функцию dir(fp), чтобы увидеть атрибуты fp.

Ответ 4

Я удивлен, что никто не упомянул метод Python __str__, который предоставляет строковое представление объекта. К сожалению, он не печатается автоматически в pdb.

Для этого также можно использовать __repr__, но __repr__ предъявляет другие требования: во- __repr__, вы (по крайней мере, теоретически) должны иметь возможность оценивать eval() выходные данные __repr__, хотя это требование, по-видимому, применяется редко.