![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_roger |
|
|||
Unregistered |
Нужно получить список переменных модуля. Что-то похожее нашел в модуле inspect, но пока ума не приложу, как это применить (есть функция co_varnames, вроде бы так, которая выдает список переменных объекта, но объект должен быть типа "code"). Как бы это проще сделать?
И, может быть, можно все еще проще сделать - вообще задача сейчас состоит в том, чтобы узнать, сколько раз каждая переменная встречается в модуле (если 1 раз - либо опечатка, либо переменную создали и забыли). |
|||
|
||||
1DRE |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.7.2005 Репутация: нет Всего: нет |
что то не понял сколько раз переменную используют хотите узнать или сколько раз её объявляют?
i = .... for i in bla: .... Если взять этот код к примеру. Из него вы хотите найти сколько раз обьявляют, то огда нана парсить по имени и '=', а если сколько раз используют то тут ещё проще, просто ищем дубликаты. В http://aspn.activestate.com/ASPN/Python/Cookbook/ можно найти оба примера. Или вы о dir() говорите. |
|||
|
||||
setq |
|
|||
Unregistered |
список переменных модуля можно получить через
|
|||
|
||||
Гость_roger |
|
||||
Unregistered |
Мне нужно подсчитать, сколько раз используется имя переменной в произвольном модуле. Т.е. при присвоении переменной значения - одно использование, изменение значения или применение переменной в выражении - еще одно использование. Смысл в том, чтобы вывести все переменные, которые упоминались лишь раз. Это либо переменные, написанные с опечаткой, либо переменные, которые создали и забыли использовать.
dir() - это первое, что я попробовал. Но он не выдал мне имена переменных. |
||||
|
|||||
1DRE |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.7.2005 Репутация: нет Всего: нет |
ну тогда пиши прогу которая будет сверять по переменной и =
А потом выведет имена для которых небыло повтора. Короче это гемор. Даже лень заниматся. |
|||
|
||||
Гость_roger |
|
||||
Unregistered |
Да не хотелось бы использовать такой неэлегантный метод (например, если переменная используется, но ей не присвоили значение, эту ошибку можно будет обнаружить лишь когда интерпретатор дойдет до этого места), в самом пайтоне есть мощные средства интроспекции, хотя это вариант - если не получится по-другому, так и сделаю.
Еще больший гемор отлавливать ошибки в программе, а однажды написанная эта прога поможет выявить часть ошибок без длительного тестирования. |
||||
|
|||||
setq |
|
||||
Unregistered |
кажется есть решение для твой проблемы. посмотри
|
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |