Option A
, = 500 . .
SELECT * FROM expensive_func_results WHERE func_name = 'calc_regress' AND arg1 = ind_key AND arg2 = dep_key and arg3 = count
..
, . , , /; .
B
/ func_name
, arguments
, result
, "arguments" kwargs , . kwargs dict, , - > /, . . , SELECT * FROM expensive_func_results WHERE func_name = 'calc_regress' AND arguments = 'str(kwargs_dict)'
, str(kwargs_dict)
- , . inspect.getargspec
, ( inspect.getcallargs
), .
, LIKE
.
C
: func_calls
func_name
, args_combo_id
, arg_name_idx
, arg_value
. , args. func_results
func_name
, args_combo_id
, result
. func_name
func_id
.
args , . , , , . 3 , 10. arg_name_idx
- , kwargs + args. , calc_regress(ind_key=1, dep_key=2, count=30)
calc_regress(1, 2, 30)
( calc_regress(1, 2)
count < - , ); args_combo_id
, , , . , .
[] PS: , func_name
, . ; deco.__name__ = func.__name__
..
PPS: , , , __str__
- / arg.
arg db, __str__
__repr__
, __repr__
( ):
Python, ( ).