Холиварофорум

Не все, что говорят на Холиварке — правда!

Вы не вошли.

Объявление

Холиварка празднует День Чтеца!
Ознакомиться с праздничными чтениями можно в соответствующем разделе

#1 2014-04-18 11:36:50

Анон

Тема айти

Каталог полезных советов и ссылок, принесенных разными it-анонами, c 1-й по 332-ю страницы:

1. C чего начинать курить айти?
2. Языки программирования
3. Тестировщик
4. Фронт-энд, бэк-энд, вёрстка
5. Data Science
6. Алгоритмы
7. Разное
8. Курсы и ресурсы с задачами

Безблог [Левел-ап] [IT] войти-в-айти с нуля для 3+ анонов


#11026 2022-12-15 15:25:37

Анон

Re: Тема айти

Угу, какой-нибудь пет-проект типа примитивной игрушки, где у тебя будут, скажем разные варианты юнитов

#11027 2022-12-15 16:22:24

Анон

Re: Тема айти

Аноны, а скиллбокс не обсуждали? Смотрю сейчас на их курс тестировщика, 7 месяцев, цена со скидкой в принципе подъёмная, программа, насколько я могу судить, неплохая. Но 7 месяцев. С другой стороны, программа яндекс-практикума на 4 месяца мне кажется просто безумной гонкой. И там по деньгам вообще мне не потянуть.
Я пыталась сама разобраться, но такое ощущение, что мне базы не хватает, всё-таки 25 лет с окончания вуза скоро.

#11028 2022-12-15 17:00:09

Анон

Re: Тема айти

Анон пишет:

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

А статью про ООП на примере трансформеров читал?
https://habr.com/ru/post/463125/

#11029 2022-12-15 17:05:12

Анон

Re: Тема айти

Анон пишет:

Может запилить челленджевый безблог про освоение ООП? Этот анон чувствует в себе силы объяснять/подталкивать

Анон пишет:

Киньте пример, что ли) или можно канальчик создать в дискорде или где-нибудь

И мне, пожалуйста, дайте ссылку, а? Начинал изучать Питон до известных событий, планирую продолжить.

#11030 2022-12-15 17:12:28

Анон

Re: Тема айти

Например, непонятно, если мы в классе обьявили какие-то поля, зачем их ещё инициализировать в конструкторе, они же итак живут внутри класса..

#11031 2022-12-15 17:26:44

Анон

Re: Тема айти

Анон пишет:
Анон пишет:

Может запилить челленджевый безблог про освоение ООП? Этот анон чувствует в себе силы объяснять/подталкивать

Анон пишет:

Киньте пример, что ли) или можно канальчик создать в дискорде или где-нибудь

И мне, пожалуйста, дайте ссылку, а? Начинал изучать Питон до известных событий, планирую продолжить.

пока вроде никто не создал)

#11032 2022-12-15 17:27:44

Анон

Re: Тема айти

Анон пишет:

Например, непонятно, если мы в классе обьявили какие-то поля, зачем их ещё инициализировать в конструкторе, они же итак живут внутри класса..

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

#11033 2022-12-15 17:34:35

Анон

Re: Тема айти

Анон пишет:

Например, непонятно, если мы в классе обьявили какие-то поля, зачем их ещё инициализировать в конструкторе, они же итак живут внутри класса..

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

Конструктор - это его инструкция по сборке на фабрике.
Вызов конструктора создаёт тебе экземпляр трансформера - собственно большущего робота - и размещает его в оперативной памяти компа.

В конструкторе по умолчанию мы пишем "цвет - зелёный, позывной - Вася, энергия - 100", если хотим, чтобы нам по умолчанию штамповали таких трансформеров.
Если у нас есть конструктор с параметрами, то мы можем при вызове "фабрика, ну-ка делай нам трансформера" в скобках написать "Федя, фиолетовый, 150", и фабрика по этой инструкции сделает нам фиолетового Федю с энергией 150, а не зелёного Васю с энергией 100.

Можно не инициализировать поля, тогда трансформер выйдет с фабрики некрашеный и без позывного (про энергию отдельный вопрос, но это зависит от того, что реализация языка запишет в это поле).
Можно присвоить значения позже, перекрасив Васю и поменяв ему позывной.

Отредактировано (2022-12-15 17:36:50)

#11034 2022-12-15 20:01:31

Анон

Re: Тема айти

Анон пишет:

пока вроде никто не создал)

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

#11035 2022-12-15 20:11:40

Анон

Re: Тема айти

Анон пишет:

Судя по тому, что один желающий нашёлся, надо будет запилить

или даже два  :lol:

#11036 2022-12-15 20:13:52

Анон

Re: Тема айти

Анон пишет:

Судя по тому, что один желающий нашёлся, надо будет запилить.

Третий анон тоже бы с интересом поглядел.

#11037 2022-12-15 20:40:56

Анон

Re: Тема айти

Четвёртым буду. Как раз после нг собиралась сесть за питон.

#11038 2022-12-15 21:17:49

Анон

Re: Тема айти

@Анон #11033, спасибо тебе, что так подробно отвечаешь!  :heart: то есть если вот эту кракозябру в конструкторе типа this.name=name не писать, то потом name у экземпляров класса не получится задать? Если мы просто в классе напишем name=None?

Отредактировано (2022-12-15 21:18:32)

#11039 2022-12-15 21:19:02

Анон

Re: Тема айти

Пятый анон с вами!

#11040 2022-12-15 21:20:40

Анон

Re: Тема айти

Анон пишет:
Анон пишет:

Например, непонятно, если мы в классе обьявили какие-то поля, зачем их ещё инициализировать в конструкторе, они же итак живут внутри класса..

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

А что именно делает инициализация именно в конструкторе строками this.color=color?
Я вижу какую-то тавтологию из серии «мой цвет - цвет», и теряюсь, что имеется в виду

#11041 2022-12-15 21:25:21

Анон

Re: Тема айти

Анон пишет:
Анон пишет:
Анон пишет:

Например, непонятно, если мы в классе обьявили какие-то поля, зачем их ещё инициализировать в конструкторе, они же итак живут внутри класса..

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

А что именно делает инициализация именно в конструкторе строками this.color=color?
Я вижу какую-то тавтологию из серии «мой цвет - цвет», и теряюсь, что имеется в виду

ну в общем да, мой цвет = цвет
то есть, когда ты создаешь экземпляр класса, ты передаешь в инит цвет, с которым ты хочешь создать данный конкретный экземпляр.
то есть передашь в конструктор "красный" в этой строке происходит присваивание переданного цвета новому объекту.
Понятнее?)

#11042 2022-12-15 21:32:59

Анон

Re: Тема айти

@Анон #11041, теперь правда дошло! Спасибо огромное, пойду практиковаться)

#11043 2022-12-15 23:34:05

Анон

Re: Тема айти

Анон пишет:

А что именно делает инициализация именно в конструкторе строками this.color=color?

this.color - это поле color экземпляра класса, то есть, цвет создаваемого трансформера
color без точки - это цвет, который ты передаёшь конструктору, когда его вызываешь
Соответственно, this.color=color - это команда "покрась трансформер цветом color, который придёт тебе при вызове функции-конструктора".
Ну или, если не аллегорически, то "присвой полю color создаваемого экземпляра значение, которое тебе передали в переменной color при вызове конструктора".
Фишка в том, что this.color и просто color - это разные сущности, и ты значение одной, пришедшее извне, присваиваешь в другую - во внутреннее поле объекта.

#11044 2022-12-15 23:38:15

Анон

Re: Тема айти

Анон пишет:

Например, непонятно, если мы в классе обьявили какие-то поля, зачем их ещё инициализировать в конструкторе, они же итак живут внутри класса..

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

#11045 2022-12-16 00:09:10

Анон

Re: Тема айти

Шестой анон тоже за!

#11046 2022-12-16 00:18:07

Анон

Re: Тема айти

Анон пишет:

то есть если вот эту кракозябру в конструкторе типа this.name=name не писать, то потом name у экземпляров класса не получится задать? Если мы просто в классе напишем name=None?

Смотри.

Если мы в классе объявим поле name и там же сразу зададим ему значение None, то оно будет таким создаваться у всех экземпляров, то есть трансформеров.
То есть, мы как бы в спецификации пишем "у трансформеров будет понятие "позывной", но всем им сначала задаём позывной "не установлен"".
А вот если его вообще не написать, а потом где-то к нему обратиться для чтения (запросить его значение) или где-то позже в коде его создать - получится каша и будут возникать ошибки.

Передавать параметры в _init_ и их в нём присваивать в поля объекта нужно, чтобы на этапе реализации быстро фигачить объекты, задавая им характеристики на лету в одну строку.

Скрытый текст

Отредактировано (2022-12-16 00:25:44)

#11047 2022-12-16 00:47:06

Анон

Re: Тема айти

Анон пишет:

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

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

Скрытый текст

норм же сработает!
создайте уже канал кто-нибудь, пока нас не прогнали за флуд)))

#11048 2022-12-16 01:03:26

Анон

Re: Тема айти

О, это я удачно зашла! Анон с ооп, ты классно объясняешь.
Мне как раз в хобби надо писать штуку для попыток обойти клаудфлар, напишу ее по относительно умному варианту )))

#11049 2022-12-16 01:36:04

Анон

Re: Тема айти

Анон пишет:

норм же сработает!

Ну дааа. Но представь, что у тебя не 100 строк учебной программки, а 15000, какой-то банковской проги или системы учёта пациентов, и тебе надо это поддерживать и развивать.
Скорее всего, ты захочешь, чтобы поле smth у объектов не объявлялось где попало в глубинах кода (причём где-то написано a.smth, где-то по ошибке кто-то написал a.smht, где-то a.something, и всё это сработает! только не так, как программист задумал), а объявлялось внутри класса.

#11050 2022-12-16 01:52:01

Анон

Re: Тема айти

Анон пишет:
Анон пишет:

норм же сработает!

Ну дааа. Но представь, что у тебя не 100 строк учебной программки, а 15000, какой-то банковской проги или системы учёта пациентов, и тебе надо это поддерживать и развивать.
Скорее всего, ты захочешь, чтобы поле smth у объектов не объявлялось где попало в глубинах кода (причём где-то написано a.smth, где-то по ошибке кто-то написал a.smht, где-то a.something, и всё это сработает! только не так, как программист задумал), а объявлялось внутри класса.

не, я чисто про теоретическую возможность))

Подвал форума

Основано на FluxBB, с модификациями Visman
Доработано специально для Холиварофорума