Гайд по библиотеке Логуру:) + Думаю всем будет интересна настройка postgreSQL на сервере, как с ним работать, что ткет psql, pg_ctl. Сам до конца не разобрался 😅😂
Досмотрел до конца, но так и не понял, что именно сэкономит мне часы... 10 строчек не очень понятного и корректного _(_dict_)_ кода вместо строчки словаря? А что бы другим понятно было, обычно комментарии к коду пишут. Практического применения даже в голову не приходит.
Это была моя ошибка, что я забыл сказать, что именно сэкономит время. Тут дело в том, что реализовывая к примеру какой-то API, когда нужно будет общаться между разными устройствами, именно дата-классы могут служить как средство для передачи данных, которые удобно принимать именно по их типу. Пример как это делается был в видео о перечислениях (Enum), ну и также дата-классы могут служить как структура, в которой собираются данные для определенного объекта, например данные студента, тогда передавая эту структуру, сразу будет понятно кому именно она принадлежит и какие аргументы у неё есть.
Сколько смотрю на питон, постоянно в нем находится подобный рудиментарный функционал. По сути это ничем не отличается от любого класса, все ограничения условны...
Странно, что люди используют дата классы не по назначению, ведь они созданы для автоматической генерации dunder методов в классе, на основе описаных полей.
Что значит "возможно не совсем правильно создавать экземпляр класса в другом классе-оболочке"? Т.е. вы не знаете можно так делать или нет с точки зрения практик программирования? И зачем тогда показывать то, что не нужно использовать в практике?
Здравствуйте, извините за опоздание, немного был занят, но я не забыл про Ваш канал. Спасибо большое за данное видео, отличное, мне очень понравилось! Вот только скажите, пожалуйста, вот эти ваши дата классы можно ли использовать при создании игры, где ты типа грибок и прыгаешь по супермарио? Что-то мне подсказывает, что можно и это даже будет полезно, но хотелось бы услышать Ваше мнение на этот счет, спасибо!
и чем дата-класс отличается от обычного? (читай, нафига его придумали, если уже такое есть). В целом, вспомнилось, что это обычная структура (если без методов) из Паскаля.. ну да, конечно, в питоне почти все есть объект, но сути это не меняет: структура - и в Африке структура..
Вообще есть метод setattr, а __dict__ Непонятно для чего хендлер? Если нам юзера нужно представить в двох сущностях, то это две разных сущности и мы нарушаем атомарность. Если нам юзер нужно для двох разных сервисов то зачем на посредник? Ведь модель это только данные.
@@zproger У меня такая же тема, только работаю на java, python использую для подготовки учеников к ЕГЭ или олимпиадам(базовый уровень).Устал искать вакансий на джуна/стажера, на java за неделю нашел )
Кстати говоря, подскажите, пожалуйста, не могли бы вы выпустить видео, где бы вы объяснили про хранение различных данных на компьютере. Я думаю, эта тема актуальна! Каким образом обезопасить свои данные и в то же время не потерять их! Иногда ходят слухи, что вот люди даже деньги теряют таким образом из-за небрежного хранения информации, что очень печально. Спасибо Вам большое еще раз! И хорошего Вам дня!
помаленьку может и освоить возможно, так как не поняв целостности картины этот пример как часть огромного пазла, но теперь и gpt поможет, видео полезное помогает в понимании, можно забить код в gpt и по задавать вопросы покажи примеры 🙄☺
Очень плохой пример в конце, где вы как раз таки должны были обрабатывать неправильные типы данных, name: str, а вы передаете в него list🤔 + проговорить об аннотации типов, что они обязательны. И при реализации датаклассов убираем дублирование кода с методом __init__. И добавить обязательная неизменяемость.
Почему пишите в Pycharm а заускаете в ipython, скорее отсюда и нестыковка у меня. Как ни связаны между собой? AttributeError: 'UserHandle' object has no attribute 'user' ``` from dataclasses import dataclass, asdict @dataclass class User: name: str age: int class UserHandle: def __int__(self, name, age): self.user = User(name, age) def get_dataclass(self): return asdict(self.user) a = UserHandle('Alex', 18) a.get_dataclass() ```
По сути из питона можно вырезать половину библиотек, если не больше, и ничегошеньки не поменяется. Понапридумывали кучу мусора, а зачем, даже писаки этих библиотек не знают.
Дата класс это структура данных. И по вашему у структур данных не бывает методов? А что на счёт списков, словарей? либо вы не правильно объясняете что такое дата класс, либо вы не понимаете что такое дата класс и вводите в заблуждение. В любом случае не ясно что это такое и зачем использовать
Чисто после изобретения костылей и велосипедов, обмотав изолентой получили ЭТО: struct User { string name; int age; }; Целый модуль для получения обычной си-шной структуры? Простите... питон не легче си
Это не структура, увы. Это сделано для того, чтобы сгенерировать сразу кучу методов, вроде сравнений, хеша превращения в строку и так далее. Это аналог @Data из джаваовского Loombok или котлиновского data class
Какие темы вы хотели бы увидеть на канале?
Гайд по библиотеке Логуру:)
+
Думаю всем будет интересна настройка postgreSQL на сервере, как с ним работать, что ткет psql, pg_ctl. Сам до конца не разобрался 😅😂
@@weedlakmar4115 а какой гайд по логуру нужен ? она же изи совсем
@@Oberst3001 тут все гайды про лёгкие темы хаха
Очень много слов паразитов, данный, далее и тд , очень мешает
Работаю над этим, спасибо за подсказку
Спасибо за видео, очень сильно ждал
Пожалуйста :)
по мне так правильнее было делать setattr(self.user, key, value), чем лезть в __dict__
Досмотрел до конца, но так и не понял, что именно сэкономит мне часы... 10 строчек не очень понятного и корректного _(_dict_)_ кода вместо строчки словаря? А что бы другим понятно было, обычно комментарии к коду пишут. Практического применения даже в голову не приходит.
Это была моя ошибка, что я забыл сказать, что именно сэкономит время. Тут дело в том, что реализовывая к примеру какой-то API, когда нужно будет общаться между разными устройствами, именно дата-классы могут служить как средство для передачи данных, которые удобно принимать именно по их типу. Пример как это делается был в видео о перечислениях (Enum), ну и также дата-классы могут служить как структура, в которой собираются данные для определенного объекта, например данные студента, тогда передавая эту структуру, сразу будет понятно кому именно она принадлежит и какие аргументы у неё есть.
@@zproger интересное видео спасибо за труд
@@zproger Да, для API это действительно подходит.
Здравствуйте, такой вопрос, для чего это использовать? Почему просто не написать поля user и age в стандартном классе?
Чтобы выделить отдельный тип и под этим типом собирать нужные атрибуты,
это можно сравнить с структурами в компилируемых языках.
@@zproger ну, а зачем второй то класс писать, в коде без проблем можно менять значения обращаясь к ним по имени
Есть библиотека pydantic, она работает с Cython и намного быстрее, позволяет приводить типы, легко расширяемая.
Крутая либа, но до неё руки ещё не дошли
Крутые видео. Очень понятно объясняете!
Спасибо!
А видео хорошее, да, спасибо. Надеюсь Вы и дальше так будете делать контент
Так и буду делать, спасибо за комментарий :)
Сколько смотрю на питон, постоянно в нем находится подобный рудиментарный функционал. По сути это ничем не отличается от любого класса, все ограничения условны...
Ага, тут много таких приколов)) как и в любом языке
Странно, что люди используют дата классы не по назначению, ведь они созданы для автоматической генерации dunder методов в классе, на основе описаных полей.
А можно ссылочку на источник, где написано как использовать надо и не надо? Странные вы люди...
как ты в терминале пишешь код используя классы и функции программы?
Через IPython
спасибо
спасибо большое
Пожалуйста :)
Хм, есть мнение что обращение через __dict__ не очень хорошая практика. Не проще ли использовать методы гет атрибут
Можно и гет сделать в принципе
Что значит "возможно не совсем правильно создавать экземпляр класса в другом классе-оболочке"? Т.е. вы не знаете можно так делать или нет с точки зрения практик программирования? И зачем тогда показывать то, что не нужно использовать в практике?
Довольно интересная штука, возможно буду переписывать свои старые проекты с ооп. Кстати, а будут видео по c++?
Возможно будут по Rust, так как его использую чаще плюсов
А к чему мне рейтинги, я о себе говорю, что использую Rust чаще
@@zproger жду видосов по Rust
@@zproger а в чём его преимущества?
@@n1ret Проще код писать. Меньше ошибок можно совершить, да и в целом он мощнее.
TypeDict vs Dataclass ?
Бро, мало контекста, в данном конкретном примере по сути только синтаксис, а для чего использовать именно dataclass не понятно.
Здравствуйте, извините за опоздание, немного был занят, но я не забыл про Ваш канал. Спасибо большое за данное видео, отличное, мне очень понравилось! Вот только скажите, пожалуйста, вот эти ваши дата классы можно ли использовать при создании игры, где ты типа грибок и прыгаешь по супермарио? Что-то мне подсказывает, что можно и это даже будет полезно, но хотелось бы услышать Ваше мнение на этот счет, спасибо!
Всё верно, вы в очередной раз идеально изучили материал из видео
Спасибо за видео, можете сказать пожалуйста что за тема у вас в pycharm
Material UI - Dracula
@@zproger Спасибо )
и чем дата-класс отличается от обычного? (читай, нафига его придумали, если уже такое есть).
В целом, вспомнилось, что это обычная структура (если без методов) из Паскаля.. ну да, конечно, в питоне почти все есть объект, но сути это не меняет: структура - и в Африке структура..
Нормально, бро, нормально.
В чем видос монтируешь?
kdenlive
Вообще есть метод setattr, а __dict__
Непонятно для чего хендлер? Если нам юзера нужно представить в двох сущностях, то это две разных сущности и мы нарушаем атомарность. Если нам юзер нужно для двох разных сервисов то зачем на посредник? Ведь модель это только данные.
Если ключа нет, то setattr молча его создаст, а __dict__ кинет исключение KeyError.
Вспоминаю с ностальгией о питоне, даже не охота отписываться от канала... Когда-то я перешёл на джс и на долго (
Сейчас только на жс работаете?
@@zproger Да, по факту Питон только для нейронок и аналитики данных, в остальном жс круче.
@@zproger У меня такая же тема, только работаю на java, python использую для подготовки учеников к ЕГЭ или олимпиадам(базовый уровень).Устал искать вакансий на джуна/стажера, на java за неделю нашел )
Кстати говоря, подскажите, пожалуйста, не могли бы вы выпустить видео, где бы вы объяснили про хранение различных данных на компьютере. Я думаю, эта тема актуальна! Каким образом обезопасить свои данные и в то же время не потерять их! Иногда ходят слухи, что вот люди даже деньги теряют таким образом из-за небрежного хранения информации, что очень печально. Спасибо Вам большое еще раз! И хорошего Вам дня!
Ага :)
Видео познавательное, спасибо. Единственный момент это раздражает фраза-паразит, звучащая через одно предложение "В данном случае" :)
Понял, исправлю
Лучший
Благодарю, приятно
помаленьку может и освоить возможно, так как не поняв целостности картины этот пример как часть огромного пазла, но теперь и gpt поможет, видео полезное помогает в понимании, можно забить код в gpt и по задавать вопросы покажи примеры 🙄☺
Как тема для PyCharm называется?
не понял в чем прикол, а сразу user.name = [1,2] не канает?))
Нет) В видео как раз об этом и говорится
@@zproger почему? Вроде user.name=[1, 2] вполне сработает. Из видел как раз неясно зачем это. Метод реализован…
Очень плохой пример в конце, где вы как раз таки должны были обрабатывать неправильные типы данных, name: str, а вы передаете в него list🤔
+ проговорить об аннотации типов, что они обязательны. И при реализации датаклассов убираем дублирование кода с методом __init__.
И добавить обязательная неизменяемость.
Почему пишите в Pycharm а заускаете в ipython, скорее отсюда и нестыковка у меня. Как ни связаны между собой?
AttributeError: 'UserHandle' object has no attribute 'user'
```
from dataclasses import dataclass, asdict
@dataclass
class User:
name: str
age: int
class UserHandle:
def __int__(self, name, age):
self.user = User(name, age)
def get_dataclass(self):
return asdict(self.user)
a = UserHandle('Alex', 18)
a.get_dataclass()
```
Вы данном видео. Видео Вы подсказках. Перейдем Кы датаклассам. Кы данному модулю.
кы чему это?
По сути из питона можно вырезать половину библиотек, если не больше, и ничегошеньки не поменяется. Понапридумывали кучу мусора, а зачем, даже писаки этих библиотек не знают.
посмотри еще pydantic - это еще круче
Согласен, крутая штука
видос не для всех.. очень много воды и ломаное не линейное повествование, сначала посмотри а потом если повезет поймешь зачем это.
другого ожидал
Концепция похожа на POJO и DAO в JAVA
Интересно это выглядит в Java)
Мне как человеку, который не писал на этом языке,
немного не привычно смотреть на такую структуру кода :)
О прикол так можно структуры делать в питоне
Ага)
*Первый коммент* ПРИВЕТ!
Привет :)
Дата класс это структура данных. И по вашему у структур данных не бывает методов? А что на счёт списков, словарей? либо вы не правильно объясняете что такое дата класс, либо вы не понимаете что такое дата класс и вводите в заблуждение. В любом случае не ясно что это такое и зачем использовать
pydantic удобнее
Чисто после изобретения костылей и велосипедов, обмотав изолентой получили ЭТО:
struct User {
string name;
int age;
};
Целый модуль для получения обычной си-шной структуры?
Простите... питон не легче си
Это не структура, увы. Это сделано для того, чтобы сгенерировать сразу кучу методов, вроде сравнений, хеша превращения в строку и так далее. Это аналог @Data из джаваовского Loombok или котлиновского data class
круто че, вместо того что написать а=1 мы пишем функцию set_a в котором пишем а=1