>>997961 Ты нихуя не понял, валидация не для того, чтобы завести строгую типизацию в питон. А для того, чтобы можно было вызывать функции, например, на веб сервере, данные на который приходят от пользователя, которые надо проверять.
>>997968 Ну я сделал по сути тоже самое. Но мне недостаточно просто типы проверить. Нужно проверить, например, что это JSON-объект со значениями-интами.
>>997773 (OP) Во-первых, пиздуй в питонотред. Во-вторых, это вполне рабочее решение. В-третьих, это похоже на велосипед, т.к. что-то подобное уже должно быть в питонских веб-фреймворках.
>>997997 JSON – частный случай. Например мне банально нужен bool и я хочу принимать как True/False если вызываю сам, так и 'true'/'false' если залетает от пользователя. А если параметр вообще опущен, то, например, True. Или мне нужен инт, но если он залетел строкой, то влететь уже должен числом.
Зачем делать if и 4 проверки в каждом методе где мне нужен таой функционал, если я могу ебнуть декоратор? Вопрос только в том есть ли такое решение отвязанное от фреймворка?
https://gist.github.com/anonymous/d498c292c79e48e3f611c0c7d2369b50
Который позволяет делать такое:
[CODE]
@validate(a="int", b="str", c="json_dict")
def method(self, a, b, c):
pass
[/CODE]
Идея в том, что все аргументы, которые залетают в метод, валидируются спец функциями, и не надо делать это самому внутри метода каждый раз.
Обоссыте, поясните как можно измерить эффективность и покажите мне либу в которой это уже сделано, и я выброшу свою поделку.