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