Когда использовать каждую из них
Подбирайте стиль функции под свою цель.
«Когда использовать каждую из них» — бесплатный урок Mojo Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Mojo Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Mojo Academy содержит 4 уроков всего.
Два инструмента — один выбор
Mojo предоставляет и def, и fn. Правильный выбор означает соответствие инструмента реальным потребностям Вашего кода. 🧭
Выбирайте def ради гибкости
Выбирайте def, когда исследуете идею, создаёте прототип или хотите пользоваться простотой Python, пока не готовы явно задавать типы.
def quick_test(data):
return len(data)Выбирайте fn ради производительности
Выбирайте fn, когда важны скорость и безопасность: в тесных циклах, библиотечном коде и везде, где компилятор должен проверять типы.
fn fast_add(a: Int, b: Int) -> Int:
return a + bСначала прототипируйте, затем укрепляйте
Обычно логику сначала набрасывают с помощью def, а затем переписывают самые нагруженные участки на fn, когда структура решения устоялась.
Компромисс типобезопасности
Используя def, Вы отказываетесь от проверок во время компиляции ради свободы. Используя fn, Вы отказываетесь от свободы ради раннего обнаружения ошибок.
Читаемость тоже важна
Сигнатура fn читается как документация: её типы точно показывают следующему разработчику, что поступает на вход и что получается на выходе.
fn distance(x: Float64, y: Float64) -> Float64:
return x * x + y * yСвободно сочетайте оба варианта
Вы можете вызвать fn из def и наоборот. Они прекрасно сосуществуют в одном файле Mojo.
Для взаимодействия часто подходит def
При работе с динамическими объектами Python через взаимодействие с другими языками def может оказаться удобнее, поскольку типы могут быть заранее неизвестны.
Для нагруженных циклов подходит fn
Числовые ядра и внутренние циклы следует помещать в fn: известные типы позволяют Mojo создавать максимально оптимизированный код.
Начать можно как угодно
Вы всегда можете начать с того варианта, который кажется естественнее. Позже заменить def на fn — небольшое и безопасное изменение.
Простое практическое правило
Если Вам полезно, чтобы compiler проверял типы и повышал скорость, пишите fn; в остальных случаях def сохраняет простоту.
Быстрая проверка
Подберите для ситуации более подходящий стиль функции.
Итоги
Используйте def, когда нужны гибкость и быстрые итерации, а fn — когда необходимы типобезопасность и скорость. 🎯
Изучай Mojo с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Когда использовать каждую из них» бесплатный?
Да — полный текст урока «Когда использовать каждую из них» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Mojo Academy, подпишись на CoddyKit PRO. Курс Mojo Academy содержит 4 уроков всего.
Чему я научусь в уроке «Когда использовать каждую из них»?
Подбирайте стиль функции под свою цель. Ты практикуешь Mojo Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Mojo Academy?
Предыдущий опыт не требуется. Mojo Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Когда использовать каждую из них»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Mojo Academy?
Да. Каждый урок Mojo Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Написание функции def
- Написание функции fn
- Когда использовать каждую из них
- Типы возвращаемых значений и None