2013-07-01 3 views
-3

Как бы я дал объект, такой как строка, все рекурсивно искал все глобальное и локальное для определенного объекта, а затем возвращал, как бы получить доступ к этому объекту. АналогичноИскать все для строки

>>> SearchEveryThing(Object_Thing) 
Found in global 
dictionary_thing[list_thing][2].attribute_thing is Object_Thing 

Или что-то в этом роде.

ответ

1

Мой первый инстинкт должен был сказать вам как-то использовать globals() и object_instance.__dict__ для этого, итерируя все найденные значения, но ваш вопрос, как правило, является тем, что на самом деле не делается.

Представьте, что ваша программа была большим приложением. Количество объектов, которые вы должны были бы перебрать, сделало бы это очень сложным для обработки.

+0

.__ dict__ не работает для встроенных объектов, что делает его сложнее, если он скрыт в списке или другом встроенном контейнере (возможно, не нужно проходить через их атрибуты.) Итерация не будет работать со словарем, например вещи (так как это не ударит по клавишам.) – PyRulez

+0

Вы можете добавить специальные методы для встроенных функций, я полагаю. Не могли бы вы попробовать вызвать 'iteritems', если вы хотите пройти через все? – TankorSmash

+0

Хорошо, я нашел то, что пытался найти (мне нужен был метод, так что это не помогло бы), но я буду помнить об этом в будущем. – PyRulez