Будет ли что-то вроде этой работы:
рвых, я не уверен, что мой подход правильный, поэтому я открыт для разных предложений.
Если операторы try / кроме часто повторяются в коде, есть ли хорошие способы сократить их или избежать их полного выписывания?
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 / кроме?