Во-первых, я не уверен, что мой подход правильный, поэтому я открыт для различных предложений.
Если аргументы try/except часто повторяются в коде, есть ли какие-либо хорошие способы их сокращения или избежать их полной записи?
try:
# Do similar thing
os.remove('/my/file')
except OSError, e:
# Same exception handing
pass
try:
# Do similar thing
os.chmod('/other/file', 0700)
except OSError, e:
#Same exception handling
pass
Например, для действий одной строки вы можете определить оболочку обработки исключений, а затем передать лямбда-функцию:
def may_exist(func):
"Work with file which you are not sure if exists."""
try:
func()
except OSError, e:
# Same exception handling
pass
may_exist(lambda: os.remove('/my/file'))
may_exist(lambda: os.chmod('/other/file', 0700))
Разве это "решение" просто делает вещи менее ясными? Должен ли я просто полностью выписать все инструкции try/except?