Тайм-коды: Классы и Объекты в ООП 2:57 Объект = данные + код (кусок памяти + набор алгоритмов, позволяющий его интерпретировать и как-то с ним работать) 4:02 функции, которые оборачивают данные 4:20 class. Класс - это тип (объектов). В том числе и числа и строки 5:10 свойства класса (классовые атрибуты) - данные, которые принадлежат не создаваемому объекту, а самому классу 5:25 чтобы создать объект, вначале создадим класс объекта с данными по-умолчанию (что нехорошо) 5:40 class Goat: 7:36 вещественный ноль== 0.0 == 0. == .0 8:15 метод = функция в классе ( с обязательным, всегда первым аргументом self. Это ссылка на конкретный объект, для которого будет вызван этот метод) 9:50 self.name # обращаться к ним, через self и точку 10:09 локальная переменная. Существует только до тех пор, пока функция вызвана, ну или ссылка на нее где то есть 11:26 свойства в функции, которые существуют за пределами функции и в то же время они привязаны к конкретному объекту класса 11:45 Экземпляры класса. a = Goat() # Создаем несколько разных объектов одного типа (класса). "Явившаяся нам конкретная коза" 13:00 type(a) 13:17 что можно делать с объектом. Можно менять его атрибуты 15:36 доступ к атрибутам и методам через точку 15:51 вызов метода. Без параметра self ( он автоматически сам там проставляется, первым) 16:48 методы могут быть с доп. параметрами 17:19 инкапсуляция ответственности внутрь класса 19:00 чтобы нельзя было получать атрибуты по-умолчанию (никакие) 20:08 class Student: 20:46 передача параметров конструктору. Чтобы интерфейс создания объекта требовал обязательного ввода атрибутов в скобочках) 21:41def __init__(self, name, age): # специальный метод - конструктор. Параметры конструирования. Инициализация атрибутов 23:20 2 разные вещи: использование объектов создаваемого класса и создание класса под его использование. Их провязка 24:12 задача метода __init__(). используя параметры (после первого self), осуществить с объектом self, который конструируется, и пока не закончится метод init (инициализация объекта) объект недосоздан. Это транзакция. Проброска внутрь ссылки на некий внешний объект. Появляется имя name в пространстве объекта self. 27:28 в Питоне нет деструктора. Нормального способа удаления объектов 29:11 "явно прописанные параметры лучше, чем неявно" 30:08 правило вежливости. Новые атрибуты можно создавать не только в конструкторе. Конкретный объект может отличаться от представителей своего класса наличием доп. атрибутов. Но это не вежливо. 36:18 различия атрибутов. Классы в Питоне явл. объектами 39:12 dir(a). Интроспекция. Какие атрибуты и методы есть у объекта а 41:22 абстрактные/классовые атрибуты. Экземплярные атрибуты 43:47 констант в Питоне нет. Но можно именовать большими буквами, и тогда почти 46:37 Код. my_balls.py. Функция main() 49:00 глобальные переменные - это зло 52:28 обработка событий по времени. random, randint 1:04:04 tick():
Народ кидайте донаты Тимофею! Преподователь сыпет метафорами и качественными объяснениями! Полюбил программирование только благодаря его лекциям по алгоритмам 2017 года
Таймкоды ко всем лекциям на одной странице brva.ru/py3 Поднимите лайком, пожалуйста. Возможно, это будет полезно кому-то ещё, изучающему Python. (таймкоды, собраны из комментариев Iritaka 160)
смотришь стримы в играх какого то задрота, который пользы никакой не приносит, а просто убивает время и ему кидают донаты по несколько тысяч иной раз бывает..вот кого надо поддерживать, хоть я и не начал заниматься по этим лекциям, за труд преподу скину прямо сейчас денюжку 100 рублей пусть будет сегодня, вы тоже друзья не жмитесь ,если 100 человек хотя бы по сто двести скинет уже какой то дополнительный интерес появится у учителя
Пора стримы проводить преподам, посадить помощника-преподавателя (лаборанта из магистратуры там), который будет модерировать стрим, отвечать на вопросы тупые или нормальные. И донаты конечно же!
RusFarFaz изначальная задумка - поддержка канала, обычно некоторые зрители хотят показать своё слово в толпе, почувствовать свою причастность. Чисто психологический фактор по большей части, редко когда цель - именно поддержка. Это если говорить про твичеров итд. Хотят, чтобы стример обратил внимание на донатера и выделил его среди толпы. Зависит от типа стрима и его характера. Например, есть консультативный - это когда можно задать свой вопрос профессионалу/ преподавателю с помощью небольшой суммы доната или проще назвать их платными сообщениями, только видит их будут все и стример обратит внимание на донат-сообщение. Тут имеется проблема, чем больше зрителей - тем больше вопросов, а значит больше цена - больше шанс, что твоё сообщение не пропустят(но тут аудитория должна быть очень большой. Короче долго всё это расписывать, надеюсь суть ясна. Писал на ходу, по-ходу мысли.
Благодарю за лекцию. Вот бы в описании увидеть где продолжение про ООП в других лекциях, чтобы перейти к ним. Буду пробовать смотреть следующие подряд в этом плейлисте.
ебать! мужик мелом на доске программирует! сразу вспомнил свои студенческие годы в 90х.... 90е давно позади, а мужик этот и по сей день там, правда пайтона еще тогда не было, но был си, паскаль и бейсик на zx spectrum... эх ностальгия!
Вы вместе просто супер стобой оченье ефективно и понятно супер . Я тебя использывовать буду только раз в неделю ато прям стремно тебя насильно работать... малоле)
С одной стороны Тимофей Фёдорович очень интеллигентный и благородный, с другой - вполне современный молодой человек-айтишник, который и пошутить может и сказать какое-нибудь слово типа "хрень". Поэтому когда он назвал файл "my_balls", я подвис - он троллит или просто не подумал о коннотациях? =)
Не совсем понял один момент. Т.Ф. говорит, что у конкретного экземпляра можно изменить статическую переменную (классовый атрибут). Если у класса описан классовый атрибут, например, равный 5-ти, то при его изменении в одном экземпляре, разве он не изменится во всех экземплярах данного класса? Или для этого надо изменить его вызовом атрибута от класса? Тут бы конечно Python'у помогла возможность создавать private объекты...
Да уж. Раньше думал, что класс - это из что-то из философии и логики. Классификация - условное деление; деление множества на подмножества по заданному условию. Класс - единица классификации; единица условного деления множества; подмножество выделенное по условию.
То есть... В конструкции: class Student: def __init__(self, name, age): print(name, age) Student('Jon,' 19) self - говорит о том, что это встроенная в класс функция? а.. __init__ - конструктор класса, который говорит о том, что атрибуты будут приняты при вызове класса, либо атрибуты создаются внутри функции? Правильно понимаю?
1. self - это не функция, это текущий экземпляр класса, грубо говоря ссылка на текущий объект, как this в плюсах, например 2. __init__ - это не столько конструктор, сколько именно иницилизатор. Можно воспринять её как функцию, которой передаются параметры. Теперь, чтобы эти принятые параметры стали атрибутами класса. нужно создать эти атрибуты и присвоить им принятые параметры. То есть: def __init__(self, name, age): self.name = name self.age = age Теперь можно спокойно обращаться к этим атрибутам из объекта класса: student = Student('Jon,' 19) print(student.name, student.age)
Раньше на Физтехе рассказывали глобальные идеи и мировоззрение. А сейчас дают синтаксис языка программировмания. Деградация ниже плинтуса. Не в упрек проеподавателю, он по своеему очарователен и гениален, просто вектор образовавния на Физтехе поменялся
Реально препод отменный.. вспомнить свою это пздц страшный с луны.. тупо садится баба за стол и толкает по книге полуторачасовую речь с каменным лицом..