Найти - Пользователи
Полная версия: возвращаемое не к месту значение none
Начало » Python для новичков » возвращаемое не к месту значение none
1
waru
def say():
    def hello():
        def huh():
            print "huh!"
        print "hello!",huh()
    print "say",hello()
say()

когда я ставлю функцию,возвращающую строку,через запятую после вывода строки в текущей функции,появляются какие-то None в конце. Если без запятой следующей строкой писать,все норм. Откуда они берутся? Ведь функции не возвращают ничего,кроме строки.
Shaman
def say():
    def hello():
        def huh():
            return "huh!"
        return "hello!" + huh()
    print "say",hello()
say()
По-дефолту возвращается None.
waru
Shaman

а почему если ставлю их следующей строкой не через запятую,не возвращаются?
Shaman
waru
Возвращаются-возвращаются, только этого не видно, т.к. возвращённые значения нигде не используются.
Budulianin
waru
а почему если ставлю их следующей строкой не через запятую,не возвращаются?
Инструкция print, печатает вывод твоей функции.
Если в теле функции нет инструкции return, то она возвращает None.

Инструкция выполняет то что в одной строке.

Иди читай Лутца. :)
Тогда поймёшь, почему так происходит.
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