Comments 5
Что появилось раньше, функция или класс? =)
Статья не вычитана.
Каждый последующий пример будет опираться на предыдущий, поэтому вам, возможно, захочется читать их последовательно и даже опробовать некоторые из них в сессии интерпретатора Python по ходу дела.
Захотелось последовательно. И вот:
Имя yell по ходу рассказа удалено, но продолжает использоваться, что приводит к ошибке.
И вот в чем загвоздка —
whisper
не существует внеspeak
:
Существует. Она была ранее определена вне функции speak:
>>> def whisper(text):
return text.lower()+'...'
>>> greet(whisper)
hi, i am a python program...
>>> list(map(yell,['hello','hey','hi']))
['HELLO!', 'HEY!', 'HI!']
>>> def speak(text):
def whisper(t):
return t.lower()+'...'
return whisper(text)
>>> speak('Hello, World!')
'hello, world!...'
>>> whisper('Yo')
'yo...'
Может быть стоило использовать разные имена? Потому что дальше тоже есть использование одних и тех же имен для разных нужд, что может привести к путанице в голове у новичка или даже у профессионала, который просто принял работу уволившегося человека. В классах имена — другой разговор, это унификация имен методов: set, get и прочие. В общем же случае в этом нет необходимости и даже вредно.
Ребята, а объясните плс что значит следующее
Конечно, можно продолжить и вызвать возвращенную функцию либо напрямую, либо присвоив ее имя переменной:
speak_func = get_speak_func(0.7)
speak_func('Hello')
'HELLO!'
Ну, то есть, если я правильно понял, здесь показан пример вызова функции через присвоение ее переменной. А как напрямую?..
Функции Python — это объекты первого класса