На прошлой неделе друг спросил меня, как перечислить или перечислить все переменные в программе / функции / и т. Д. для целей отладки (по сути, получение снимка всего, чтобы вы могли видеть, какие переменные установлены, или установлены ли они вообще). Я немного огляделся и нашел относительно хороший способ для 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 : Я предлагаю, что этот вопрос следует духу небольшого « вызова кода ».
Если вы не согласны, просто отредактируйте и удалите тег и ссылку.