Conversation
Godrik0
left a comment
There was a problem hiding this comment.
Если ослабить проверку на n, то стоит еще проверить:
Что n -- это целое число;
Что n -- неотрицательное.
| def uncurried(*args): | ||
| result = func | ||
| for arg in args: | ||
| result = result(arg) | ||
| return result |
There was a problem hiding this comment.
Нет проверки количества переданных аргументов len(args) != n
src/curry.py
Outdated
| def curry(func, n): | ||
| if n != func.__code__.co_argcount: | ||
| raise Exception("неправильная арность") | ||
| return |
There was a problem hiding this comment.
После raise выполнение функции прекращается
src/curry.py
Outdated
|
|
||
| def curry(func, n): | ||
| if n != func.__code__.co_argcount: | ||
| raise Exception("неправильная арность") |
There was a problem hiding this comment.
Использовать Exception -- плохая практика, лучше указывать конкретную ошибку, например ValueError
|
|
||
|
|
||
| def curry(func, n): | ||
| if n != func.__code__.co_argcount: |
There was a problem hiding this comment.
n != func.__code__.co_argcount не позволит нам выполнить частичной каррирование.
Достаточно проверить, что n не больше реального количества аргументов
… нужно передавать правильно, частичное каррирование реализовано с помощью args1, который фиксирует параметры заранее
| return a + b + c | ||
|
|
||
|
|
||
| def curry(func, n, *args1): |
There was a problem hiding this comment.
curry принимает функцию и её арность
У Вас еще можно передать аргументы, что немного странно
|
|
||
| def curry(func, n, *args1): | ||
| if n != func.__code__.co_argcount: | ||
| raise ValueError |
There was a problem hiding this comment.
Стоит писать текст ошибок, без них вообще не понятно из-за чего упала программа
No description provided.