Существует ли какой-либо шаблон проектирования или простой способ проверки параметров функции / метода (по допустимым значениям)?
В настоящее время множество исходного кода в моих функциях состоит из этих проверок параметров (пустые строки, недопустимыесимволы, существующий идентификатор, ...) и, при необходимости, это немного уродливо и запутывает «реальный» код функции.Как правило, мой код выглядит примерно так:
def my_function(p1,p2,p3,p4):
#check parameters
if p1 == ''
raise InvalidArgError('p1 can not be empty')
if p1 not in valid_list:
raise InvalidArgError('p1 does not exist')
if p2 < 0:
raise InvalidArgError('p2 can not be negative')
...
#finally do something
p = p2+p3
Для решения я имею в виду декораторы в Python.
Я использую Python, хотя я предполагаюхорошее решение не зависит от языка.