#38. Именованные аргументы. Фактические и формальные параметры | Python для начинающих

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 พ.ย. 2024

ความคิดเห็น • 74

  • @Feldspyt
    @Feldspyt ปีที่แล้ว +6

    У Вас голос и интонация очень похожи на голос Н.Н. Дроздова ) "А теперь мы можем с вами наблюдать функции в их естественной среде обитания. Посмотрите, как они резвятся в консоли" )) очень приятно смотреть и слушать)

  • @mazur_vg
    @mazur_vg 3 ปีที่แล้ว +20

    Спасибо! То что вы делаете - важно. Ваша речь одна из самых грамотных среди других авторов, рассказывающих про Python. Спасибо за высокое качество материала!

  • @gulitim6077
    @gulitim6077 2 ปีที่แล้ว +5

    Не смотря на то как легко все подаётся и не замысловато, наиболее ясно! Разжевываете все до мелких частиц и в тоже время не затянуто!
    Сколько пересмотрел по функциям разного в сети, доходчивее не встречал!
    У вас хорошо получается, многие по часу объясняют и видно что стараются донести ясно, но так и не получается!

  • @guriasoon
    @guriasoon 2 ปีที่แล้ว +4

    Просто безмерно благодарен за уроки и объяснение. Мне тяжело даётся в свои 33 года Python но благодаря Вашим урокам я понимать многое начал!

  • @86Blind
    @86Blind 3 ปีที่แล้ว +8

    Как всегда очень классное объяснение. Спасибо !

  • @77nixter
    @77nixter 2 ปีที่แล้ว +5

    Спасибо!!!! Офигенный урок!!! 👍

  • @elenalevasheva3830
    @elenalevasheva3830 ปีที่แล้ว +2

    Спасибо за уроки, интересно и полезно

  • @DzhenanRamchilovich
    @DzhenanRamchilovich 3 ปีที่แล้ว +7

    Спасибо за уроки! Очень доступно и понятно. Остался вопрос про "чистку" формальных изменяемых объектов от аргумантов.

  • @СергейЮров-б6е
    @СергейЮров-б6е 3 ปีที่แล้ว +4

    Если вы и не гениальный программист, то точно генеральный педагог

  • @pullya66
    @pullya66 3 ปีที่แล้ว +3

    учитель-гений!

  • @andredru4278
    @andredru4278 9 หลายเดือนก่อน +1

    Спасибо. Понравился пример.

  • @T0unFl3it
    @T0unFl3it 3 ปีที่แล้ว +10

    Здравствуйте, наткнулся случайно на Ваш канал. Спасибо за видео, объясняете всё четко и понятно, хотя я уже далеко не первый год изучаю язык и даже планирую в будущем создать свой собственный язык. Термины "фактические параметры" и "формальные параметры" в таком понимании вижу впервые, до этого всё время считал, что формальные параметры (также просто называемые "параметрами" без уточнения) -- это переменные, объявленные в заголовке функции и получающие при вызове функции значения фактических параметров (также называемых "аргументами"), указанных в вызове. В данном понимании "a", "b", "c", и "verbose" все являются формальными параметрами, а соответствующие им значения в вызове функции "get_V" -- фактическими параметрами. На мой взгляд удачнее называть первые три параметра "get_V" обязательными параметрами, а параметр "verbose" -- опциональным (необязательным) параметром, т.к. это более распространённая терминология. Стало интересно узнать, где именно Вы встретили эти термины в том специфическом понимании, что упоминается на 4:42. Заранее спасибо.

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +4

      У Тимофея Хирьянова :))

    • @T0unFl3it
      @T0unFl3it 3 ปีที่แล้ว +2

      @@selfedu_rus Спасибо за ответ) Тоже его смотрю параллельно, мне он нравится как преподаватель (раньше его лекции по алгоритмам на Python 3 чуть ли не запоем смотрел), но почему-то не помню этот момент. У Вас получается преподносить информацию не хуже, сейчас уже несколько занятий подряд посмотрел и не могу остановиться)

    • @gulitim6077
      @gulitim6077 2 ปีที่แล้ว +1

      @@T0unFl3it Приветствую!
      А я вот напротив очень рад что кто то назвал параметры не общепринято, а именно так что отразило саму суть и разницу!
      Для новичка это и нужно!
      С проф терминологией зная суть разобраться потом не сложно!
      А вот понять суть по проф терминологии куда сложнее!

    • @T0unFl3it
      @T0unFl3it 2 ปีที่แล้ว +2

      @@gulitim6077 Согласен, что терминологию поначалу сложно освоить и приходится объяснять в упрощённой форме, просто мне захотелось вставить свои пять копеек. Здесь ключевой момент в том, чтобы различать параметры в объявлении функции и аргументы в её вызове (формальные vs. фактические параметры), но в разных языках может быть разная терминология, из-за чего у людей возникает путаница/недопонимание при переходе с одного языка на другой.

    • @ВадимСухотин-ю5д
      @ВадимСухотин-ю5д 2 ปีที่แล้ว

      @@gulitim6077 а чему тут радоваться ?! Тому, что человек, посмотрев это видео, будет употреблять эти термины в значении, отличном от общепринятого, из-за чего сядет в калошу ?

  • @СарматПересветов
    @СарматПересветов ปีที่แล้ว +1

    спасибо большое, очень интерестный урок

  • @СергейСмирнов-ь8у
    @СергейСмирнов-ь8у 3 ปีที่แล้ว +7

    Очень точный первый комментарий. 👍

  • @ivanlino3747
    @ivanlino3747 3 ปีที่แล้ว +2

    спасибо за труд!

  • @eugenedukatta9355
    @eugenedukatta9355 ปีที่แล้ว +1

    Параметры со значением по-умолчанию, также используются для модернизации функции, которая уже используется в программах. Например модернизация библиотек или модулей. Добавляются параметры со значением по-умолчанию, при этом не надо менять все существующие программы, которые используют данную функцию, они будут работать также без проблем с новой усовершенствованной функцией.

  • @gulitim6077
    @gulitim6077 2 ปีที่แล้ว +3

    Настоящий Питон Панда)
    Нет, it Panda)

  • @illiukhin
    @illiukhin 3 ปีที่แล้ว +3

    спасибо

  • @jamjam3337
    @jamjam3337 ปีที่แล้ว +1

    спасибо!👏

  • @ayqikz
    @ayqikz ปีที่แล้ว +2

    Legend

  • @likeclockwork9600
    @likeclockwork9600 3 ปีที่แล้ว +3

    Сергей, а планируете сертификацию делать для курса на степике?

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว

      это делается на платной основе, поэтому пока нет

  • @ibrahimoglu
    @ibrahimoglu 3 ปีที่แล้ว +4

    👍

  • @fahrenheit1863
    @fahrenheit1863 ปีที่แล้ว +1

    Правильно ли я понял? Дефолтные значения в функции кешируются, поэтому и не создается новый список, потому что адрес объекта сохраняется в атрибуте __defaults__ . Дефолтные значения можно рассматривать как атрибуты класса, а недефолтные значения при инициализации экземпляра класса.

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว +1

      Нет, кэширования никакого нет. Когда на изменяемые значения ведут переменные (ссылки), то через них можно менять объект, не меняя его адреса. В этом суть. При изменении неизменяемых объектов, создается новый объект с новым адресом. Подробнее вам об этом могут рассказать в сообществе ТГ-канала (ссылка под видео).

    • @fahrenheit1863
      @fahrenheit1863 ปีที่แล้ว

      @@selfedu_rus Про изменяемые и неизменяемые я знаю, я просто неправильно выразился(в кешировании пока не разбираюсь), ведь мы можем получить список ни разу не вызвав функцию, и даже поменять значения списка, если убрать из функции return, и вызвать функцию, значение в lst изменится. В глобальной области lst нет ведь мы его не вернули из функции, но он существует в самой функции. Хотя из теории мы знаем что все локальные атрибуты функции существуют только во время ее выполнения и доступны только внутри тела функции.

    • @Putu_pererenan
      @Putu_pererenan 2 หลายเดือนก่อน

      @@fahrenheit1863 из какой теории? В питоне все функции являются объектом, который создается в момент инициализации кода, независимо от того, вызвал ты ее или нет объект будет создан интерпретатором

  • @Onix_ryan
    @Onix_ryan ปีที่แล้ว +1

    Здравствуйте, а где можно найти практические задачи?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      ссылка под видео

  • @impellergimpeller5133
    @impellergimpeller5133 3 ปีที่แล้ว +2

    👍👍👍👍👍

  • @eugenedukatta9355
    @eugenedukatta9355 ปีที่แล้ว +1

    Почему в конце делаете проверку так - lst is None, а не так - lst == None

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      просто так принято в Питоне выполнять сравнение с None

  • @vltoropov677
    @vltoropov677 2 ปีที่แล้ว

    Очень извиняюсь, я еще только изучаю питон, но так и помывает дать свое определение параметрам (аргументам) функций:
    Формальные параметры - параметры заданные в определении функции, в том числе и именнованные.
    Фактические параметры - параметры при вызове функции, в том числе и именнованные.
    По аналогии с другими "древними" языками.

  • @a_n_t_o_n_09
    @a_n_t_o_n_09 2 ปีที่แล้ว +1

    Сергей здравствуйте, выдает ошибку , что нет итерабельного объекта
    def add_value(value, lst=None):
    if lst in None:
    lst = []


    lst.append(value)
    return lst
    l = add_value(1)
    l = add_value(2)
    print(l)
    if lst in None:
    TypeError: argument of type 'NoneType' is not iterable

    • @gore_ot_uma166
      @gore_ot_uma166 2 ปีที่แล้ว +1

      вы указали не верный оператор. вместо in надо is: if lst IS None

  • @thepseudonym.
    @thepseudonym. 3 ปีที่แล้ว +2

    А в каком пространстве находится имя lst после выхода из функции?)
    Как всегда низкий поклон за ваши труды!

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +2

      Некорректный вопрос. Переменные могут быть глобальными или локальными, а объекты просто располагаются в памяти. В данном случае на lst будет также ссылаться глобальная переменная l. Да, на один объект может быть множество ссылок )

    • @thepseudonym.
      @thepseudonym. 3 ปีที่แล้ว

      @@selfedu_rus Да, но после выхода из функции мы не можем обратится к этому списку по имени lst. Но он же существует в памяти) Не знаю, что думать )
      Ну то есть после выхода из функции её локальные имена удаляются но при этом список висит где-то.

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +1

      @@thepseudonym. Да, т.к. на него ведет глобальная ссылка

    • @skiffsolo9419
      @skiffsolo9419 2 ปีที่แล้ว

      @@selfedu_rus А почему сборщик мусора не подчищает этот объект после выхода из функции, какая переменная после завершения выполнения функции продолжает ссылаться на него? То есть во время выполнения программы, все объекты, которые были созданы как аргументы по умолчанию вызванных функций висят в памяти до завершения программы? Или вообще ВСЕ объекты которые были переданы в функции в виде параметров, висят в памяти до завершения программы ?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      @@skiffsolo9419 вы имеете в виду пустой список? так на него ссылается переменная l, т.к. функция возвращает этот список

  • @kalivann
    @kalivann 11 หลายเดือนก่อน +1

    как я понимаю формальные параметры нужно записывать в конце. Или я просто не правильно понял?

    • @selfedu_rus
      @selfedu_rus  11 หลายเดือนก่อน +1

      параметры со значениями по умолчанию всегда прописываются последними; сами значения следует использовать неизменяемые типы данных

    • @kalivann
      @kalivann 11 หลายเดือนก่อน

      @@selfedu_rus благодарю за ответ

  • @ИванПриписнов
    @ИванПриписнов 2 ปีที่แล้ว

    Скоро функции параметры аргументы в страшном сне снятся будут ))

  • @vb52ru
    @vb52ru 3 ปีที่แล้ว +1

    Пока не понял логику формального параметра со списком, когда разберусь, отпишусь

  • @Alex-qp7fm
    @Alex-qp7fm 3 ปีที่แล้ว +2

    Привет, ты со всеми своими знаниями python, можешь спокойно устроиться на работу программиста?

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +6

      не знаю, я и так им работаю, устраиваться не пробовал ))

    • @Alex-qp7fm
      @Alex-qp7fm 3 ปีที่แล้ว

      @@selfedu_rus Работаешь на ютубе, выкладывая ролики? Или фриланс? Или работа?

  • @KonstantinSafronov-v4m
    @KonstantinSafronov-v4m ปีที่แล้ว

    "а", "бэ" и "цэ" - это названия латинских букв. код пишется на английском языке, а не на латинском, и называть буквы нужно на английском - "эй", "би" и "си".

    • @eugenedukatta9355
      @eugenedukatta9355 ปีที่แล้ว

      Имена переменным придумывает программист какие хочет и на каком хочет языке, как хочет так и называет. Можно так - А, Бэ, Вэ

  • @northern_man_
    @northern_man_ ปีที่แล้ว

    Не посчитайте меня дураком, но ведь когда на 10:35 мы вызываем эту ф-цию первый раз, то после того, как она отработала, локальная переменная lst уничтожается, то есть при повторном вызове она создается вновь и ей присваивается опять значение [ ], указанное по умолчанию. Где у меня ошибка в рассуждении?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      Напишите это в телеграм-канал, вам подробно ответят.

    • @eugenedukatta9355
      @eugenedukatta9355 ปีที่แล้ว

      локальная переменная (имя) уничтожается, объект по-умолчанию с которым она связана - не уничтожается

  • @KonstantinSafronov-v4m
    @KonstantinSafronov-v4m ปีที่แล้ว

    замечу, что термин "фактические параметры" изложен НЕПРАВИЛЬНО.
    формальный параметр - аргумент, указываемый при объявлении или определении функции.
    фактический параметр - аргумент, передаваемый в функцию при её вызове;
    ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)#%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B8_%D1%84%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B

  • @gayratsaidakhmedov5451
    @gayratsaidakhmedov5451 11 หลายเดือนก่อน +1

    спасибо