допустим у меня есть код
def foo():
bar = 1
wibble = 3
return locals()
моя текущая программа проверки синтаксиса (flake8 с syntastic.vim) выдаст ошибку «назначено, но никогда не использовалось» для обеих переменных. Однако locals() подразумевает, что они действительно используются, если не явно.
def foo():
bar = 1
wibble = 3 # <-- I still want this to throw as it is definitely not being used
return bar
Есть ли какая-либо программа проверки python или пользовательские настройки, которые будут осведомлены о locals () и снисходительны?
РЕДАКТИРОВАТЬ:
Это быстрое и грязное решение для vim/syntastic/flake8, которое подавляет предупреждение в вашем .vimrc.
"Ignore unused variable warnings whenever locals() is being used in a file
function! LocalsWarningSuppress()
if ( search("locals()",'nw') > 0)
let g:syntastic_python_checker='flake8 --ignore=W806'
else
let g:syntastic_python_checker='flake8'
endif
endfunction
au BufWritePre **/(filter_pattern)*py call LocalsWarningSuppress()
locals()
— не такая уж и хорошая идея, ну да ладно.. :-) - person Martijn Pieters   schedule 16.01.2013return {'bar': bar, 'wibble': wibble}
и покончите с этим.pyflakes
счастлив, вы счастливы как сопровождающий! - person Martijn Pieters   schedule 16.01.2013locals()
, это может быть признаком того, что вам нужен класс; поскольку может показаться, что ваши методы просто действуют как пространство имен. Преобразование кода в класс и доступ к переменным/свойствам через экземпляр удовлетворит линтер и, вероятно, принесет вам молчаливую молитву благодарности от следующего парня, который должен его поддерживать. - person Burhan Khalid   schedule 16.01.2013locals().update(foo())
. - person PaulMcG   schedule 16.01.2013