Найти - Пользователи
Полная версия: Откуда значение у переменной?
Начало » Python для новичков » Откуда значение у переменной?
1
kciosdse
Всем привет. Решаю одну задачу, для этого нужно разложить число на слагаемые. Нашёл такую функцию:
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. Так вот. Помогите разобраться, откуда появляется значение параметра?



alexbadaloff
Это только объявление функции:
def _part(n, k, pre):
    ...

А после её вызов и сразу возвращение результата из part(n, k):
return _part(n, k, n)
И как видно pre будет равен n.
kciosdse
Вот блин, сразу не дошло) спасибо!
alexbadaloff
kciosdse
функция(или метод.. не знаю как назвать)
Кстати, если брать терминологию для С++, например отсюда, то там написано:
В соответствии со стандартной терминологией ООП функции –
компоненты класса или компонентные функции можно называть методами.

А это я понимаю как, если функция описана сама по себе - то это просто функция. А если она внутри класса, то уже метод.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB