0
How to manage the fonc arguments through a decorator?
Instead of a long awkward description, I have built an example of decorator I try to handle : check out "decor & arg _ test" on my profile, in case you would try yourself. I let some ~~ where I guess something related to arguments (and the wrap effect) should take place... https://code.sololearn.com/cQwvk2NKC8pW/?ref=app
2 ответов
+ 1
Hello. You can pass parameters through the wrapper function and use them to call the actual function, like this.
def dodg_divider(fonc) :
def wrap(x,y) :
r = fonc(x,y)
w = float(x) % float(y)
div_inaccuracy = (r-w, r+w)
return r, div_inaccuracy
return wrap
I think you should call the fonc(x, y) only once inside the wrapper. This solution is not perfect yet.. You should pay attention to type conversions and type checks. I would put the try block outside, where you get the input() and make sure you only pass integers to the function. You can also avoid ValueError that way (if a float lile 5.2 is given). And design the return value so that it makes sense... Now it is a tuple that contains the function return value, and another tuple having the calculations inside the wrapper.
https://code.sololearn.com/c3PX8u16c0bh/?ref=app
+ 1
Thank you Tibor Santa! It looks good. I'll follow your advices and play with them.