Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Общие вопросы > как получить имена переменных модуля? |
Автор: Гость_roger 5.7.2005, 13:44 |
Нужно получить список переменных модуля. Что-то похожее нашел в модуле inspect, но пока ума не приложу, как это применить (есть функция co_varnames, вроде бы так, которая выдает список переменных объекта, но объект должен быть типа "code"). Как бы это проще сделать? И, может быть, можно все еще проще сделать - вообще задача сейчас состоит в том, чтобы узнать, сколько раз каждая переменная встречается в модуле (если 1 раз - либо опечатка, либо переменную создали и забыли). |
Автор: 1DRE 5.7.2005, 14:47 |
что то не понял сколько раз переменную используют хотите узнать или сколько раз её объявляют? i = .... for i in bla: .... Если взять этот код к примеру. Из него вы хотите найти сколько раз обьявляют, то огда нана парсить по имени и '=', а если сколько раз используют то тут ещё проще, просто ищем дубликаты. В http://aspn.activestate.com/ASPN/Python/Cookbook/ можно найти оба примера. Или вы о dir() говорите. |
Автор: setq 5.7.2005, 14:52 | ||
список переменных модуля можно получить через
|
Автор: Гость_roger 6.7.2005, 11:02 | ||||
Мне нужно подсчитать, сколько раз используется имя переменной в произвольном модуле. Т.е. при присвоении переменной значения - одно использование, изменение значения или применение переменной в выражении - еще одно использование. Смысл в том, чтобы вывести все переменные, которые упоминались лишь раз. Это либо переменные, написанные с опечаткой, либо переменные, которые создали и забыли использовать.
dir() - это первое, что я попробовал. Но он не выдал мне имена переменных. |
Автор: 1DRE 6.7.2005, 17:26 |
ну тогда пиши прогу которая будет сверять по переменной и = А потом выведет имена для которых небыло повтора. Короче это гемор. Даже лень заниматся. |
Автор: Гость_roger 7.7.2005, 08:33 | ||||
Да не хотелось бы использовать такой неэлегантный метод (например, если переменная используется, но ей не присвоили значение, эту ошибку можно будет обнаружить лишь когда интерпретатор дойдет до этого места), в самом пайтоне есть мощные средства интроспекции, хотя это вариант - если не получится по-другому, так и сделаю.
Еще больший гемор отлавливать ошибки в программе, а однажды написанная эта прога поможет выявить часть ошибок без длительного тестирования. |
Автор: setq 15.7.2005, 11:31 | ||||
кажется есть решение для твой проблемы. посмотри
|