def part(n, k): def _part(n, k, pre): if n <= 0: return [] if k == 1: print pre # Тут у переменной уже есть значение - '1' if n <= pre: # Её сравнивают с n return [[n]] # И возвращают n return [] ret = [] for i in range(min(pre, n), 0, -1): ret += [[i] + sub for sub in _part(n-i, k-1, i)] print(ret) return ret return _part(n, k, n)
Вызываю её вот так: part(1, 1)
Дальше вызывается внутренняя функция(или метод.. не знаю как назвать) _part(n, k, pre) с параметром pre который как-то присваивает себе значение 1. Так вот. Помогите разобраться, откуда появляется значение параметра?