Уроки Python с нуля / #18 - Конструкторы, переопределение методов

Поделиться
HTML-код
  • Опубликовано: 27 сен 2024

Комментарии • 168

  • @devidbrown8176
    @devidbrown8176 Год назад +145

    Вот до этого урока все было понятно)

    • @СергейБулычев-ч8у
      @СергейБулычев-ч8у Год назад +15

      аналогичный случай и в нашей деревне. перестал догонять...

    • @The_Magnifico
      @The_Magnifico Год назад +20

      Прочитав ваш комментарий перед уроком немного испугался, но слава Богу все понял)

    • @ВалентинСакменов
      @ВалентинСакменов 9 месяцев назад +2

      вот и я также). Расскажи, научился ещё чему-нибудь после этих уроков? Может дашь пару советов, что учить дальше?

    • @devidbrown8176
      @devidbrown8176 9 месяцев назад

      @@ВалентинСакменов Да, много всего изучал) Решил, что дальше буду в веб-разработку учиться, поэтому начал смотреть Django framework. Пытался потихоньку изучать, но уперся в то, что я ничего не знаю про базы данных, про работу запросов и их методов... не знаю язык sql, не знаю java script и html от слова совсем. Не знаю css (хоть это уже вообще пока не критично). Соответственно, я изучал перечисленные технологии и языки. Помимо этого немного изучил PostgreSQL БД. И немного Redis. Вот сейчас читаю книгу - называется Django 4 в примерах (автор - Антонио Меле). Разместил резюме, но пока не дотягиваю даже до современных джуновских минимумов. Как-то так) А с классами и их методами давно разобрался. Я просто до изучения пайтон вообще ничего не знал про программирование. И тяжко очень разбираться с нуля, если еще учитывать, что мне уже 35 лет и я всю жизнь работал в продажах)

    • @Shmn-iq7zl
      @Shmn-iq7zl 6 месяцев назад +3

      @@The_Magnifico объясни мне, плиз, на кой прописывать переопределение метода cat1.set_data("John" , 2) если на выводе у тебя ничего не меняется?

  • @frontend_developer_anti_vata
    @frontend_developer_anti_vata 11 месяцев назад +9

    После второго просмотра все стало предельно ясно, хотя сомневаюсь что смогу сам написать подобное без образца, буду пробовать. Спасибо!

  • @olegkomlev
    @olegkomlev 2 года назад +29

    8:20 Не устанавливайте в качестве значения параметра по умолчанию список, словарь или множество! Если, конечно, не хотите, чтобы получилась путаница ,мешанина и непонятные ошибки. Число, строку, кортеж, None, True или False можно, они неизменяемые (immutable). А если значение по умолчания какого-то параметра задается изменяемым типом, то фактические параметры при разных вызовах функции окажутся связанными друг с другом и будут друг на друга влиять. Обычно, это не то, что нужно. Поэтому, если хотите параметр по-умолчанию [ ], то в заголовке надо его "закодировать" (например, как None), а в начале функции "раскодировать":
    def fun(L=None):
    if L is None: L = [ ]
    ...дальнейшая работа с L
    Если L будут только списки, то можно "раскодировать" так:
    L = L or [ ]

    • @Михайло-б2в
      @Михайло-б2в 2 года назад +1

      А разве кортеж изменяемый ?

    • @Михайло-б2в
      @Михайло-б2в 2 года назад +3

      А ,только увидел, что вы его не там упомянули , извините

  • @MalkiaMmoja
    @MalkiaMmoja 2 года назад +74

    В отличие от предыдущих уроков, этот получился достаточно запутанный.
    Новичкам будет сложно разобраться, так что есть смысл осветить эту тему подробнее.

    • @ShooterStar
      @ShooterStar 2 года назад +8

      это ооп, ее более подробно не осветить. Достаточно сложная тема, которая многие годы может не усвоится в голове, пока не будешь практиковаться сам и экспериментировать

    • @твоеимя-е6т
      @твоеимя-е6т Год назад +4

      вообще запутанно. ничего не понятно.

    • @Mandarin-h7t
      @Mandarin-h7t Год назад +8

      ​@@ShooterStarооп, повод бросить программирование

    • @MynameisZOOM
      @MynameisZOOM 3 месяца назад +1

      Я то понял что делают конструкторы, только вопрос нафига они нужны? Я просто не могу представить ситуацию где они понадобились бы

    • @МагомедАлимов-в9ы
      @МагомедАлимов-в9ы 2 месяца назад

      ​@@ShooterStarвообще то можно . Гоша просто не подкован в теме

  • @maxgl8814
    @maxgl8814 Год назад +6

    Очень хорошо объясняешь и у тебя очень приятный голос, прям приятно слушать, в общем спасибо !

  • @ostpsyho1979
    @ostpsyho1979 10 месяцев назад +9

    Ща упростим:
    Добавляем ещё одну функцию, а две другие также оставляем, просто скрываем их__))))))
    Упростили с кайфом!

  • @cubver3934
    @cubver3934 Год назад +4

    Смотрите давайте будем честны это лучший курс по программированию который мы видели

  • @ПётрЛевков
    @ПётрЛевков 2 года назад +31

    Честно говоря маловато для таких сложных тем как ООП, предыдущие 2 урока лично я так и не понял, как использовать (учусь с нуля по твоим курсам). Очень хочется больше примеров в уроке про модули, менеджер whith ... as, и сам ООП

    • @---69
      @---69 Год назад +6

      Я бы сделал так:
      1) Максимально всё объяснять, даже если урок будет под пол часа. Чем больше поняли тем лучше будет в будущем.
      2) Больше примеров всех "сортов".
      3) Больше дополнительной информации к примеру: не делать цикл чтобы узнать Мин./Макс. значение в списке, а рассказать о min()/max() и т. д.
      *4) Лично я бы оставлял простенькую задачу в конце видео, а в начале следующего разобрать решение (всё это нужно для общего понятия темы)

    • @jokerblat9064
      @jokerblat9064 Год назад +3

      @@---69 ну тогда делай (каждый может говорить, а сами то три минутное видео еле снимаете 🤦‍♂)

    • @fl1ss613
      @fl1ss613 Год назад +2

      @@jokerblat9064 он просто выложил свою идею, зачем такой негатив

  • @CrossTheUniverseNOW
    @CrossTheUniverseNOW 3 месяца назад

    Блинский. Все буквально на коленке можно теперь клепать) Я до этого только через функциональщину все писал - автоматизировал рабочие рутинные процессы. А когда речь зашла об универсальных интерфейсах для всех рабочих станций - понятно стало, что наверное это должен быть веб интерфейс. Ну и встал вопрос - как? Кроме питона (в утилитарном смысле - совсем простые вещи) и зачатков джавы чистой - я ничего не знаю. Соответственно встал вопрос о том, что на слуху. Там собсна джанго сразу всплыл. Гуглеж тут же подсказал, что работать можно только через формат ООП, а то как я это делаю - будет неудобно. И я пошел искать что-то энтеринг левела. Ваши уроки шикарны)

  • @to-500
    @to-500 3 месяца назад +1

    В принципе понятно. Но нужно будет смотреть еще какой-то другой курс

  • @Nosfer70Rus
    @Nosfer70Rus 3 года назад +7

    Все просто и понятно, супер! Жду продолжения!

  • @khan_pro
    @khan_pro Год назад +2

    Спасибо за работу 👍

  • @АнастасияКороткая-э1т
    @АнастасияКороткая-э1т 7 месяцев назад

    Спасибо за доходчивое объяснение ооп. Вроде все просто

  • @БабенкоВалерійМихайлович

    Может кто-то обьяснить зачем мы создавали еще один метод для вывода данных, если мы это могли запихнуть в __init__?

    • @creator7822
      @creator7822 Год назад

      Это просто для разнообразия, на чье усмотрение. Я тоже не понял прикола усложнять но для кого как удобнее

    • @goodlex129
      @goodlex129 Год назад +1

      @@creator7822 потому, что метод get написан один раз, использовать его можно сколько угодно. А если написать в инит, то получится два блока одинакового кода. Когда функции достаточно объемны - это важно

  • @seizure22
    @seizure22 9 месяцев назад +1

    если кому то всё ещё непонятно, то по факту конструктор __init__ придаёт нужные вам параметры в класс, и по желанию так-же переопределяет любые методы которые вы хотите, и всё это намного упрощает и сокращает код, вместо того чтобы писать по несколько переменных и строк, для того чтобы всего лишь вывести значение

  • @МагомедАлимов-в9ы
    @МагомедАлимов-в9ы 2 месяца назад +1

    На заметку тем кто не понял этот урок : ищите другой курс по ООП

  • @Sdatyuri
    @Sdatyuri 10 месяцев назад

    выочень хорошо обесняте

  • @Ilya_Loh
    @Ilya_Loh 4 месяца назад

    поздравляю вас друзья, мы на финишной прямой!

  • @TheBigChannel_
    @TheBigChannel_ 2 года назад

    Thank you so much🙏🏻

  • @mal.angenommen
    @mal.angenommen Год назад

    Чтобы питон был понятен посмотрите уроки на более сложные языки, на пример С# или Java. Я сам с Java и мне все абсолютно понятно! Ведь на джаве очень строгая типизация и все разжёвывается компайлеру что сам все понимаешь сразу.

  • @Normankovalsky
    @Normankovalsky 2 года назад +6

    кто лучше разбирается подскажите, мне кажется или автор тут запутал, сделал абракодабру, рассказывает про __init__ и тем не менее оставил set_data . Зачем тогда нужен __init__ не понятно

    • @rosskh5437
      @rosskh5437 2 года назад +2

      Я вот немного не понял на 5.27 минуте... Когда мы добавили def set_data(self, name = None, age = None, isHappy = None
      и вводим cat1.set_data( "John", 2). Эти значения никуда не выводятся. И я не понял для чего и как с этим работать. Когда мы вписали это в _init_, то там уже понятно

    • @qwertyssl
      @qwertyssl 2 года назад

      чтобы сократить код в конце

    • @МаксимПро-щ8с
      @МаксимПро-щ8с 2 года назад

      @@rosskh5437 мб он ошибся , я в init добавил none и все заработало как надо

    • @zombich
      @zombich 2 года назад

      @@rosskh5437 set_data он ввёл уже после того как cat1 присвоил значения с помощью конструктора. А set_data не умеет выводить значения

  • @ospanov_dk
    @ospanov_dk Год назад +2

    6:22 код не реализовался

  • @156forever-ug3bm
    @156forever-ug3bm 6 месяцев назад

    4:13 мы не упростили на 4 строчки кода, а наоборот, посчитайте сколько строк в функции __init__ (5). а убрали в самом конце только 4

  • @Dan-so1ei
    @Dan-so1ei 2 года назад +1

    set_data почему то не определяется в VSCode и __init__/

  • @----hs7fy
    @----hs7fy Год назад +1

    что за 3 точки? откуда они взялиссь у вас в конце строчек?

  • @nikolaydemchenko6741
    @nikolaydemchenko6741 7 месяцев назад

    Переопределение методов происходит в подклассе при наследовании. Вы показываете установку значений по умолчанию для параметров функции. Хороший курс, но местами путаница в определениях.

  • @wuzi200Z
    @wuzi200Z 10 месяцев назад

    Забавно, учитель упорно нарушает стандарты PEP8 в самых принципиальных местах. Дефолтные параметры при назначении пробелами от равенства не отедляются.

  • @БорисЛазарев-ь5н
    @БорисЛазарев-ь5н 11 дней назад

    Почему у меня точь в точь код (4:30) не выводит ничего, процесс заканчивается с кодом 0, а значений нет😢

  • @quentindrenton
    @quentindrenton Год назад

    Я буду тут каждый день. День 10.1

  • @grovestreet2126
    @grovestreet2126 Год назад +1

    Функция __init__ - это инициализация. Но хотя это тоже является хоть каким, но никаким конструктором. Но правильнее будет называть функцию __init__ инициализацией

  • @orthodox-chanel
    @orthodox-chanel 2 года назад +1

    не до конца понятна тема с переопределением. Если по этому примеру заполнять базу с котами где у кота есть только возраст или настроение но не известно его имя, как быть в таком случае, чтобы автоматически прописывалось занчение - None?
    вот к примеру
    cat1 = cat("Барсик",5, True) - это правильное написание кода, но допустим мы не знаем имени кота, то как тогда прописать остальные значения правильно, чтобы пропустить имя кота и не выходили ошибки
    если прописать код так:
    cat1 = cat( ,5, True) - выдает ошибки
    если так:
    cat1 = cat(5, True) - имя устанавливается как - 5, а возраст как - True.
    понятно, что если прописать каждое значение в отдельность через методы .name= , .age = , и .isHappy =, и что то оставить не заполненным то при вызове getData() будут отображаться все значения а вместо пропущенного None, но мы ведь хотим через конструктор все писать одной строчкой. Не понятно как правильно реализовать эту возможность в случае если какие нибудь данные не расположены они где-то в начале к в случае с именем .
    и второй момент: хотелось бы по подробнее узнать почему конструкция называться должна именно __init__, почему 2 нижних подчеркивания в начале и в конце названия. Спасибо за внимание!

    • @kolazee
      @kolazee Год назад

      уже нашёл ответы?

    • @СемёнФилиппов-ф2ф
      @СемёнФилиппов-ф2ф Год назад +3

      Не знаю, актуально ли это еще или нет, но. При вызове конструктора можно явно указать, каким полям класса ты хочешь присвоить значения. Если при создании класса "Cat" мы прописывали поля так же, как в видео, а поле "name" хотим оставить по умолчанию, то вызов конструктора для cat1 будет выглядеть так:
      cat1 = Cat(age=5, IsHappy=True)
      В таком случае мы дадим знать интерпретатору, какие конкретно поля класса какими значениями мы хотим инициализировать. Тогда при вызове геттера для cat1 выведется name по умолчанию, age = 5, isHappy = True
      Вот так, надеюсь помогло

    • @rumba1754
      @rumba1754 Год назад

      @@СемёнФилиппов-ф2ф респект, чувак, помогло. Правда, придётся теперь в объектах прописывать полностью все названия параметров через равно, но всё же, спасибо.

    • @strogole
      @strogole 8 месяцев назад

      @@СемёнФилиппов-ф2фЖаль в уроке это нет. Это важно для применения.

    • @strogole
      @strogole 8 месяцев назад

      Не помогло, остальные заменились на те, что указаны по-умолчанию. А хотелось, чтобы если переопределяится значения уже ранее введенных парамметров, то меняются только те, которые указаны.

  • @totsamyi1703
    @totsamyi1703 2 года назад +1

    Я написал идентичный код, но он не запускается и выдаёт ошибки. Вообще не могу разобраться

    • @БтгВвд
      @БтгВвд 2 года назад

      Выделите весь текст и займитесь cntr + alt +L, если не помогло проверьте правильность написания слов, запятых, символов верхнем и нижнем регистре

  • @tuntoki1337
    @tuntoki1337 10 месяцев назад +1

    НЕ понял сегодняшьюю тему(

  • @ДаниилМудрецов-ф7й

    у меня почему то после конструктора стал выводить Process finished with exit code 0

  • @Skitalec2468
    @Skitalec2468 Год назад

    по идее переопределение методов это не то что показано в видео
    переопределение метода это когда мы создаем метод с таким же названием но другими входными параметрами, а то что в уроке это просто установка параметров по умолчанию и еще автор забыл сказать что такие параметры надо в конец ставить потому что если будут в середине или начале то ошибка выпадет

  • @Jaqk_Is_Back
    @Jaqk_Is_Back Месяц назад

    Увы что то не так, часть материала скрыта и поэтому выскакивает ошибка, придется скипать этот урок

  • @strogole
    @strogole 8 месяцев назад

    Добрый день! Смазался урок. Не понял, как количество переменных передаваемых в set_data можно использовать? Ну допустим передали 2 переменные или одну. Они будут записаны как последовательные парамметры в методе. Кстаати! Использование None работает только в конструкторе. У меня так по крайней мере.
    Урок требует дополнительного ковыряния и изучение ошибок( на 3-ку. Но... может это и хорошо. Т.к. к 18 уроку уже есть понимание где искать ошибки)
    Спасибо! А так все отлично!

  • @kvn972
    @kvn972 Год назад +1

    на 5:10 коту1 присвоено имя Джон, а выводится Жопен ((

  • @denisburkhovetsky5511
    @denisburkhovetsky5511 2 года назад +3

    Вопрос.
    если у нас все 3 переменные имеют по умолчанию -значение None
    то если я ввожу 2 значения(х,у) то первая переменная будет х, вторая переменная будет у, третья будет None
    как вызвать метод, чтоб первая была -х вторая переменная - None. а третья - y.
    т.е. как пропустить передачу одного или нескольких параметров, чтоб они были по умолчанию
    думал так: Cat1.set_data('koli', , True) - но выдает ошибку

    • @maksymbabich1383
      @maksymbabich1383 2 года назад +5

      Не знаю чи ще актуально. Ви можете звертатися до аргументу за його ім'ям, ось приклад:
      class Table:
      length = None
      width = None
      def __init__(self, length = 10, width = 20):
      self.length = length
      self.width = width
      print('Table\'s length: ', self.length, 'Table\'s width: ', self.width, 'Table\'s square: ', self.length * self.width)
      table1 = Table(width=10)
      Вихід:
      Table's length: 10 Table's width: 10 Table's square: 100
      Я задав лише другий аргумент звернувшись до нього за ім'ям і мені не довелося вводити перший аргумент.

    • @ShooterStar
      @ShooterStar 2 года назад +2

      переменной в функции указывай значение по умолчанию. Именно переменной в параметре. Тогда функция не будет ее запрашивать и ее можно пропустить пустой строкой

    • @denisburkhovetsky5511
      @denisburkhovetsky5511 2 года назад

      @@maksymbabich1383 дякую)

  • @PyanayaMeduza
    @PyanayaMeduza Год назад +1

    Кто-нибудь понял, для чего прописывали "John" и прочее в cat1.set_data, если на выходе ничего не изменилость?

    • @VitaliyZlobin
      @VitaliyZlobin Год назад

      изменилось, просто вывод информации был до вызова метода set_data, если после set_data выполнить метод get_data, то значения будут уже изменённые

    • @Alfredodemo
      @Alfredodemo Год назад

      @@VitaliyZlobin + получается что функция при переопределении одного параметра затирает все данные объекта

  • @pyfve953
    @pyfve953 Год назад

    2:53 для себя

  • @anderpython
    @anderpython Год назад +1

    6:25 дружище, с конструктором внутри класса приведенное переопределение не работает. Если конструктор закомментировать, а с объектом работать через cat1.set_data("John", 2), тогда работает. Тот ли модуль ты исполняешь, раз на протяжении всего урока ничего не меняется? Бро, это не предъява, я пытаюсь разобраться. Вот у себя изменил код. как описал выше, все заработало. В точности с твоим кодом - не работает. И сразу ответ, разобравшись: переопределение нужно указывать в конструкторе, а не в методе. Спасибо!

    • @calling4570
      @calling4570 Год назад

      Подскажите пожалуйста, как правильно прописать алгоритм чтобы значения изменялись, мне бы наглядный пример

  • @artopiiparinen1778
    @artopiiparinen1778 7 месяцев назад

    AttributeError: 'Cat' object has no attribute 'set_data'

    • @thekefir3206
      @thekefir3206 6 месяцев назад

      мб, ты сделал опечатку в название метода, когда писал его в самом классе?

  • @ДмитрийХолмс-щ9р

    Здесь нет перегрузки конструктора как в C#?

  • @jekaprudnik11
    @jekaprudnik11 Год назад

    Не могу понять смысл переопределения метода? Смысл переопределять если на экран выводятся те же 3 параметра(барсик,3,True)?вот мы прописали ниже (John ,2, False), а выводится на экран все равно барсик. Или это опечатка автора, что то недоделано, или я не могу понять зачем переопределять метод. Я так понял - у нас было - барсик,3, True, и потом мы переопределяем на John,2 и соответсвенно должно поменять барсик на John, 3 на 2, а True остаться? Типа поменяли всего два параметра а третий остался как был. Так ведь? В этом смысл?

    • @thekefir3206
      @thekefir3206 6 месяцев назад

      если, спустя 9 месяцев, ещё не разобрался, то я могу попытаться объяснить..
      " Смысл переопределять если на экране выводятся те де 3 параметра (барсик,3,True)?вот мы прописали ниже (John,2,False), а выводится на экран все равно барсик "
      - Чисто технически, значения поменялись на "John" и "2", но он это просто не вывел. если ты сам попробуешь сделать это, а после вывести на экран: print(cat1.name()), допустим, то тебе выведется именно John.
      А до этого, функция вывода была сразу же заложена в конструкторе __init__ . а, т.к код выполняется по порядку, то сначала
      1. выполнилось все, что было связано с __init__,
      а потом:
      2. Мы изменили значения на (на 20 строке):
      name = "John"
      age = 2
      isHappy = None
      None, у isHappy, потому что это считается значением по умолчанию - def set_data(self, name, age, **isHappy = None**
      обрати внимание на то, что я выделил звёздочками. Именно в этом фрагменте автор указал, что будет считаться за "значение по умолчанию"

  • @freeandlee4365
    @freeandlee4365 Год назад +1

    я совсем зеленый в этом деле. только третий день. Я не понял одного. вот если мы не ставим последний параметр к коту, то отображается None. а вот если допустим не ввести имя, то следующие параметры слетают. Т.е. возраст улетает на имя, настроение улетает на возраст, а настроение остается None. Знающие, подскажите как исправить. буду благодарен

    • @СемёнФилиппов-ф2ф
      @СемёнФилиппов-ф2ф Год назад +1

      Не знаю, актуально ли это еще или нет, но. При вызове конструктора можно явно указать, каким полям класса ты хочешь присвоить значения. Если при создании класса "Cat" мы прописывали поля так же, как в видео, а поле "name" хотим оставить по умолчанию, то вызов конструктора для cat1 будет выглядеть так:
      cat1 = Cat(age=5, IsHappy=True)
      В таком случае мы дадим знать интерпретатору, какие конкретно поля класса какими значениями мы хотим инициализировать. Тогда при вызове геттера для cat1 выведется name по умолчанию, age = 5, isHappy = True
      Вот так, надеюсь помогло

  • @gvazdikaastraki6632
    @gvazdikaastraki6632 2 года назад +2

    Я сделала всё точь в точь Ютубе, но у меня не выводится ничего, обсолютно пусто, и не написана где ошибка, если хоть кто-то знает скажите почему такое происходит?

    • @bitchshield
      @bitchshield 2 года назад +1

      Получилось? Я делаю этот урок на 8 дней позже, чем Вы. У меня то же самое. Все на 1000 рах перепроверила - вывод пусто и не указано никакой ошибки. Зашла в комменты посмотреть, вдруг уже у кого-то так же.

    • @maksymbabich1383
      @maksymbabich1383 2 года назад

      Який саме код виконуєте?

    • @ShooterStar
      @ShooterStar 2 года назад

      внимательно надо все делать

    • @elysiumstation
      @elysiumstation Год назад

      значит функции print() нет, которая находится в методе get_data()

    • @sdddwd8243
      @sdddwd8243 Год назад

      @@elysiumstation где именно print находиться? на видео нету его, у меня так же пустой результат

  • @deadbladerr0r
    @deadbladerr0r Год назад

    Не нужное set_data когда есть __init__ запутал множество ребят

  • @ДимаДухаст
    @ДимаДухаст 5 месяцев назад

    Если вам не понятно -- не отчаивайтесь, автору тоже ничего не понятно)

  • @ostpsyho1979
    @ostpsyho1979 10 месяцев назад

    Что же, финишная прямая

  • @sia4281
    @sia4281 11 месяцев назад

    PyCharm подчеркивает isHappy в __init__, просит сделать в нижнем регистре.
    Кстати, вместо __init__, благодаря подсказчику набрал __int__, минут 10 тупил в чём ошибка

  • @YuriBakharev
    @YuriBakharev Год назад

    Толи пример не удачный.
    Толи это очередная реинкорнация выборки/сортировки данных.
    Как я понял .
    Есть два котика.
    У каждого по три параметра.
    Эти параметры прописаны для каждого котика персонально.
    Тоесть, как не вертись, некие данные надо вводить.
    Потом куча манипуляций.
    И на выходе распечатка параметров этих котиков.
    По идеи, это в 4 строчки можно запихать.
    Две с котиками.
    Две с принтами.
    Увеличиваем количество котиков, также увеличивается количество писанины.
    Как по мне, тут рациональное приделать цикл, который будет считывать данные о котиках и распечатывать.

  • @rubentavakalan6214
    @rubentavakalan6214 Год назад

    Всем привет у кого такая же проблема как и у меня я делаю всё как в видео но у меня в терминале ничего нету не результата ни ошибок что делать?(

  • @_Diadoc
    @_Diadoc Год назад

    Почему у меня self просто серый и attributeerror?

    • @_Diadoc
      @_Diadoc Год назад

      Все в порядке, дело в отступах

  • @valdorazor
    @valdorazor Год назад

    Вот тот код, что на 4.40 ничего не выводит в консоль. Попробовал в конец добавить print(cat1.name) и вернулось значение None, то есть сам конструктор не сработал. Может кто подскажет, что не так?

    • @ourrussia1437
      @ourrussia1437 Год назад

      у меня така же хрень

    • @valdorazor
      @valdorazor Год назад

      @@ourrussia1437 я решил проблему. Оказалось, что автор скрыл/свернул некоторые строки, а я этого не заметил, присмотритесь.)

    • @ourrussia1437
      @ourrussia1437 Год назад

      @@valdorazor ну да, там три точки я в начале их просто поставил так же ...
      я по следующему уроку понял что это скрытые строки

  • @AXGroser
    @AXGroser Год назад

    Так и не понял, зачем нужен этот конструктор...

  • @doomguy591
    @doomguy591 11 месяцев назад

    У меня вообще код не работает 🧐

  • @BGames11
    @BGames11 Год назад +2

    Подскажите кто-нибудь пожалуйста!
    Сделал также как на 4:41 но в строке с функцией def set_data вылазит ошибка из-за отступов, что делать не очень понимаю

    • @sansgamer3060
      @sansgamer3060 10 месяцев назад

      чел ты разобрался если да подскажи что не так у меня такая же проблема

    • @Legend25428
      @Legend25428 6 месяцев назад

      ​@@sansgamer3060 Смог разобраться? Я тоже сейчас на такой проблеме.

    • @lieze976
      @lieze976 2 месяца назад

      такая же залупа, но не просто на строчке с set data а вообще +- на 14 строчке всегда просит ставить отступ, хотя он там нахуй не нужен

  • @ДаниилМудрецов-ф7й

    а результат не выводит

  • @marianafff
    @marianafff Год назад

    не спішіть все розуміти, я переглянула всі ці уроки ще 8 місяців тому і довго практикувалась і тільки зараз дойшла до ООП і коли ти вже достатньо засвоїв попередні теми на практиці то це вже не буде даватись так складно..

  • @poprop10
    @poprop10 Год назад

    Скопировал данные с прошлого урока - не работает , вручную все переписал - не работает . Attribute error 'Cat object has no attributes 'set' . Потом оказалось что часть кода свернуто , что то полкчилось , в итоге проверка следующей опции - опять ошибка . Этот урок явно плох

    • @_Diadoc
      @_Diadoc Год назад

      Вылечила атрибутеррор правильными отступами

    • @poprop10
      @poprop10 Год назад

      @@_Diadoc честно , эти уроки мало эффективны, просмотрел их , потом купил курс по пайтону и даже базовые задачки с курса данная информация решить не позволяет даже в первых темах, а тут огромные темы в 1 видео засунули . Максимум для ознакомления что есть что в пайтон

    • @elysiumstation
      @elysiumstation Год назад

      @@poprop10 наверно потому что надо закреплять каждый урок из этого плейлиста практикой а не за один день все просматривать?

  • @timoxa-o7x
    @timoxa-o7x Год назад

    ничего не выводится

  • @Derek_3
    @Derek_3 10 месяцев назад

    5:18 У тебя не изменились значения)

    • @thekefir3206
      @thekefir3206 6 месяцев назад

      цель - не показать другие значения, а удостовериться в том, что ошибка исчезнет.

  • @дмитрийм-т1п
    @дмитрийм-т1п 2 года назад +16

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

    • @ShooterStar
      @ShooterStar 2 года назад +13

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

    • @luckyman1685
      @luckyman1685 Год назад +1

      @@ShooterStar если ты знаешь, сколько нужно изучать питон, зачем ты сидишь на этом уроке? Повторяешь?)))

    • @ДмитрийЧернецкий-д3ъ
      @ДмитрийЧернецкий-д3ъ Год назад +1

      ИзвЕните ))

  • @твоеимя-е6т
    @твоеимя-е6т Год назад

    вообще ничего не понятно. Автор, если перед тем как изучать данную тему надо что то знать,тогда напиши что именно, твои видосы никто не понимает на самом деле.

  • @axlmal6980
    @axlmal6980 Год назад

    Очень слабая подача материала. Подойдет разве что школьникам для быстрого входа.
    Очень много ошибок. Непонимание фундаментальных понятий.
    Примеры не показательны. Нисколько не раскрывают суть. Код плохой. На таких видео обучают плохих программистов.
    Их уже развелось до чёрта.
    Список - это изменяемый тип данных! Пустые списки передавать в функции вообще нельзя !
    Долго потом будете отлавливать ошибки, не понимая почему ваш код работает не как ожидалось.
    Можно долго изливать свое негодование.
    Короче СПЕЦИАЛИСТОВ с таким образованием нигде не примут!

    • @kolazee
      @kolazee Год назад

      а кого можешь посоветовать?

    • @axlmal6980
      @axlmal6980 Год назад +1

      @@kolazee напр канал
      Хитрый питон
      И подобные можно самому найти. Суть в том что люди имеют серьёзный фундамент и глобальное понимание темы.
      Такой код хочется Конспектировать и пересматривать повторно.
      Также в топку курсы от мэйлру, скилбокс и отус. А ведь кто-то за это ещё и деньги отдаёт.
      У меня Есть много платных курсов за которые хотят много $. Могу закинуть на файлообменник за символические пару сотен ₽ за потраченное время.

    • @kolazee
      @kolazee Год назад

      @@axlmal6980 скилбокс бесплатен шоли?

  • @nowa881
    @nowa881 2 года назад

    Единственное понятное объяснение

  • @dmitry.masalskiy
    @dmitry.masalskiy Год назад +23

    Как приятно подкреплять полученные от Вас знания сразу на практике! Банально переписать код из урока самостоятельно - так лучше запоминается.

  • @ЗНАКОМЫЙСВАРЩИК
    @ЗНАКОМЫЙСВАРЩИК Год назад +10

    Открываю тайну, спишите код до момента вывески подписки, именно в этот момент Георгий закрывает части кода-сокращает. На 1:42 наглядно видно, как он открывает его чтобы скопировать и вставить в ИНИТ. Все работает корректно, ОСТАЛОСЬ только понять КАК. Что сложно. Ну хоть срисовать получилось🤪

  • @johannschwengler529
    @johannschwengler529 2 года назад +13

    Ни кто не заметил что переопределение не сработало? Там вышло то что и было до этого

    • @ВиталийРальников-н4з
      @ВиталийРальников-н4з 2 года назад

      Тоже не сработало, как править?

    • @johannschwengler529
      @johannschwengler529 2 года назад

      @@ВиталийРальников-н4з хз

    • @barmolei11
      @barmolei11 2 года назад

      это какая секунда?

    • @sogorich
      @sogorich 2 года назад +2

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

    • @johannschwengler529
      @johannschwengler529 2 года назад

      @@sogorich есть годные уроки по python?

  • @python1289
    @python1289 3 года назад +38

    спасибо за контент 👍🏻, очень жду продолжения (как минимум 40-50 уроков про питон)

    • @ПищащийГолландец
      @ПищащийГолландец 3 года назад +2

      Яндекс переводчик видео вам в помощь. Хотя для меня объяснение классов тут более разжовано и понятно. Автору👍

  • @sania123k2
    @sania123k2 Год назад +3

    Этот урок меня окончательно запутал. Постоянно выдает ошибки, пытаясь вводить аналогичное авторскому

  • @----hs7fy
    @----hs7fy Год назад +2

    что-то превратильсь в 3 точки каким путем?в начале ролика кусочек кода

  • @VitaliyZlobin
    @VitaliyZlobin Год назад +2

    4:45 не переопределение методов, а установка значений по умолчанию.
    Переопределение методов происходит, когда класс переопределяет(изменяет логику) методы родительского класса

  • @Lola_Braun
    @Lola_Braun Год назад +2

    Все понятно, когда буду отрабатывать на практике - вернусь к этому уроку. Спасибо!

  • @MrAdAmGaMeS
    @MrAdAmGaMeS Год назад +3

    Очень понравилось, толково объясняешь , спасибо

  • @ДалиаДаниеле
    @ДалиаДаниеле Год назад +1

    А почему перегрузка называется переопределением?

  • @hondadrive9943
    @hondadrive9943 Год назад +1

    Если честно, совсем не понятно для чего это ООП предназначено. 3 раз пересматриваю не могу вникнуть.

    • @kotmlg8753
      @kotmlg8753 Год назад +2

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

  • @adiletasangalukov8556
    @adiletasangalukov8556 3 года назад +2

    Спасибо как только будет время надо поучиться

  • @Q_roxe
    @Q_roxe 2 года назад +1

    Когда я добавил значения по умолчанию в функцию set_data
    А после создал объект:
    Cat5=Cat(GGWP,4)
    Cat5.set_data()
    То у меня выдает ошибку
    Хотя вроде программа должна была сама дописать за меня недостающие значения
    Я не понимаю почему?Код проверил все в порядке,но выходит ошибка,еще не понял почему у него пропал кот Джон когда он тестировал значения по умолчанию у значения isHappy

    • @zombich
      @zombich 2 года назад +1

      Скорее всего, ты уже разобрался с этим. Но всё же отвечу, он сначала создал объект с помощью конструктора (с помощью него же и вывел) и только после этого он объекту cat1 присвоил другие значения ('John', 2) с помощью метода set_data, при этом он не выводил обновленный cat1 (так как метод set_data не умеет выводить)

  • @rickerscream666
    @rickerscream666 3 месяца назад

    пожалуйста не скрывайте код )

  • @touhou_nerd
    @touhou_nerd 9 месяцев назад

    вроде все понятно, однако код абсолютно нерабочий

  • @Радагаст-з6у
    @Радагаст-з6у 8 месяцев назад

    Если вводить только возраст и значение True, то выводит: "имя: 2 Возраст: True Счастлив: None". Как сделать чтоб нормально работал и понимал, что нет данных именно об имени?

    • @dd0kee-v2x
      @dd0kee-v2x 7 месяцев назад

      попробуйте ввести так: "name: ' ', age: 2, isHappy: True" . У меня сработало, но перед значением возраста будет пробел

  • @----hs7fy
    @----hs7fy Год назад

    и превращение чего-то в 3 точки спрятал за рекламой

    • @AXGroser
      @AXGroser Год назад

      три точки это же свёрнутая функция

  • @youcharatube
    @youcharatube Год назад

    А что такое Добиж? Он же там Говорит это слово

    • @hools938
      @hools938 6 месяцев назад

      тобишь скорее всего это тоже самое что -
      то есть