На прошлой неделе друг спросил меня, как перечислить или перечислить все переменные в программе / функции / и т. Д. для целей отладки (по сути, получение снимка всего, чтобы вы могли видеть, какие переменные установлены, или установлены ли они вообще). Я немного огляделся и нашел относительно хороший способ для Python:
#! / usr / bin / python foo1 = "Привет, мир" foo2 = "бар" foo3 = {"1": "а", "2": "b"} foo4 = "1 + 1" для имени в dir (): myvalue = eval (имя) напечатать имя, «есть», тип (имя), «и равно», myvalue
что выведет что-то вроде:
__builtins__ - это <тип 'str'> и равно <модуль '__builtin__' (встроенный)> __doc__ имеет значение <type 'str'> и равно None __file__ - это <тип 'str'> и равно ./foo.py __name__ - это <тип 'str'> и равно __main__ foo1 - это <type 'str'> и равно Hello world foo2 - это <type 'str'> и равно bar foo3 - это <type 'str'> и равно {'1': 'a', '2': 'b'} foo4 имеет значение <type 'str'> и равно 1 + 1
До сих пор я частично нашел способ в PHP (любезно предоставлен текст ссылки ), но он перечисляет только все переменные и их типы, а не содержимое:
<? php // создаем несколько переменных $ bar = 'foo'; $ foo = 'бар'; // создаем новый объект массива $ arrayObj = новый объект ArrayObject (get_defined_vars ()); // цикл по объекту массива и эхо-переменным и значениям for ($ iterator = $ arrayObj-> getIterator (); $ iterator-> valid (); $ iterator-> next ()) { эхо $ итератор-> ключ (). '=>'. $ итератор-> текущий (). '<br />'; } ?>
Итак, я задаю вам вопрос: как вы перечисляете все переменные и их содержимое на вашем любимом языке?
Редактировать VonC : Я предлагаю, что этот вопрос следует духу небольшого « вызова кода ».
Если вы не согласны, просто отредактируйте и удалите тег и ссылку.