Форум сайта python.su
добрый вечер.
Пытаюсь разобраться в языке, появились следующие вопросы:
как в пайтоне реализована абстракция, как принцип ООП?
В каких случая следует использовать ООП? заметил, что многие модули не используют классы
Следует-ли в пайтоне применять типизацию?
Правильно-ли я понимаю, что из-за модульной структуры порождающие паттерны в целом не нужны?
И еще посоветуйте пожалуйста литературу по практике написания кода, желательно с упором в веб или хайчлоад
Отредактировано texsce (Ноя. 8, 2022 22:29:08)
Офлайн
texsceЧтобы с вебом работать, нужно веб отдельно изучать.Т.е хорошо понимать как работает вся эта магия с html, css, javascript(хотябы примерно),запросы ,ответы, url и тд. Без этих знаний python будет бесполезен.
И еще посоветуйте пожалуйста литературу по практике написания кода, желательно с упором в веб или хайчлоад
texsceЭто философия связана с организацией в пространстве. В жизни - это когда много вещей, и их организуешь по полкам, ящикам, комнатам, размещаешь в с соответствии с функциональностью или свойствам и тд.
В каких случая следует использовать ООП
Офлайн
texsceОни просто без классов писать умеют, а ты не умеешь. Обычно кто без классов писать не умеет, тот и с классами писать не умеет.
заметил, что многие модули не используют классы
texsceКогда ты дорос до ООП. А для этого надо уметь писать без ООП.
В каких случая следует использовать ООП?
texsceОна и без тебя применяется. Когда ты пишешь на питоне, в нём типизация сама работает, хочешь ты этого или нет. Попробуй сложить строку с целым числом и получить в результате то, что тебе хочется.
Следует-ли в пайтоне применять типизацию?
texsceЯ думаю, ты просто изучение программирования не с того начал. Если на строительство перевести, например, то получится, что ты собрался изучить строительство домов и спрашиваешь сейчас вопросы про крышу в стиле “а что, правда вот шершавая крыша не нужна, чтобы первый этаж строить?”. Да, чтобы строить первый этаж, там нужно подвал сначала построить, а под него фундамент заложить, чтобы дом под землю не ушёл, когда очень тяжёлым станет. Причём тут крыша какая-то там? И ты такой “а ф-фун-фень… фундамент - это чо такое?”. Так надо же сначала изучать вот это, а не вот то. Тогда и знать будешь.
Правильно-ли я понимаю, что из-за модульной структуры порождающие паттерны в целом не нужны?
Отредактировано py.user.next (Ноя. 9, 2022 01:41:13)
Офлайн
ох…. да ребята, а я думал в php снобы, ну давайте разберемся с вашими ответами
xam1816
Чтобы с вебом работать, нужно веб отдельно изучать.Т.е хорошо понимать как работает вся эта магия с html, css, javascript(хотябы примерно),запросы ,ответы, url и тд. Без этих знаний python будет бесполезен.
xam1816по азам-то я прошелся, а вот на классах у меня ступняк, потому что на фреймворках в новой команде все пишут в императивном стиле и я не могу понять зачем.
Если есть опыт с другими языками, так пройдитесь по азам сначала. Переменные, if, while, списки, функции. На начальном этапе важно поошибаться, чтобы понимать, на что ругается интерпретатор, т.е. распространенные ошибки.
xam1816т.е. вы хотите сказать, что модульная организация пайтона, по сути дела предполагает под собой пространство имен. И для большинства решаемых задач такая организация кода позволяет обходится без классов -как способа организации архитектуры?
В программировании вместо вещей - алгоритмы. Вот пишешь код, и понимаешь что какие-то строки у тебя повторяются, так ты их выносишь в отдельную функцию - это и есть отдельное пространство для алгоритма.
py.user.next
Она и без тебя применяется. Когда ты пишешь на питоне, в нём типизация сама работает, хочешь ты этого или нет. Попробуй сложить строку с целым числом и получить в результате то, что тебе хочется.
py.user.nextк чему все это? ну … молодец?
Так вот, благодаря своей программе, которую я ни у кого не брал и никто мне её не давал и не дал бы никогда
Отредактировано texsce (Ноя. 9, 2022 09:20:51)
Офлайн
texsceВ моем понимании абстракция:
как в пайтоне реализована абстракция- базовый принцип ООП?
class MyClass(): arg1 = 0 arg2 = 5 def __init__(self): self.arg0 = 3 def info(self): print(self.arg3) class MySubClass(MyClass): arg3 = 1 MySubClass().info() # используем метод info() класса MyClass и пофиг чего там еще в нем есть
Офлайн
m1r42
это наследование
может литературу подскажете?
Отредактировано texsce (Ноя. 9, 2022 10:38:14)
Офлайн
Марк Лутц - Изучаем Питон
Офлайн
texsceТы ещё скажи, что чтобы разрабатывать под веб, можно и вообще не знать программирования, так как можно просто позвонить программисту, а он уже в свою очередь всё напишет тебе.
что бы работать с бекендом не обязательно знать html, css, javascript пример - фронтенд работает через апи бекенда
texsceА ты не можешь объяснить, зачем она тебе нужна вдруг стала? Это чтобы чисто ребята ламером не обозвали?
вообще вопрос был в сторону анотации типов, видимо не точно объяснил - понимаете за счет указания типов архитектура становится более грамотная
texsceК тому, что ты с классами не напишешь даже это, а без классов - тем более. Просто, чтобы оно работало, надо уметь составлять алгоритмы, а ты их не умеешь составлять, потому что решил пропустить этот шаг и начать с самого современного, что ты там откопал в пространстве этой области, - с шаблонов ООП.
к чему все это?
texsceТак расширяй, что ты к уже написанному коду пристал? Видимо, код такого качества, что в него надо лезть уже после того, как его написал очередной гений-летун-птушник.
но есть такие запросы в том числе от компаний как поддерживаемость программного решения и расширяемость
texsceА зачем он вообще лезет в этот код? Там есть интерфейс - пользуйся. Всё спрятано за интерфейсом. Очень интересная стратегия у компании: по сто раз переписывать один и тот же фрагмент системы с целью расширения, нанимая и выпинывая программистов периодически.
Если вы напишите лапшу из кода и уйдете следующий пришедший программист скажет - код не читаем, это все нужно менять и делать по новой
texsceНу, если бы ты мог понять этот принцип, ты бы вопроса этого не задавал бы? По ним-то ты и палишься. Это вопрос в стиле “я вот знаю, что в доме где-то есть плита для готовки еды, подскажите мне точные координаты крыши дома, по которым я эту плиту смогу там найти сразу, а то долго искать не хочется”. Вопрос сразу возникает: а ты точно понимаешь то, про что так умно типа спрашиваешь?
как в пайтоне реализована абстракция- базовый принцип ООП?
texsceНу, после PHP ты хотя бы процедурную парадигму должен знать-то? И почему ты её императивной называешь? По принципу императивная - значит, императорская типа, типа главная и поэтому основная? Это прикол, конечно, но а вдруг?
а я думал в php снобы
Офлайн
texsceок, но суть та же
это наследование
from abc import ABC, abstractmethod class MyAbsClass(ABC): @abstractmethod def info(self): print("инфа") class MyClass(MyAbsClass): def info(self): super().info() obj = MyClass() obj.info()
Офлайн
ZerGспасибо уже читаю)
Марк Лутц - Изучаем Питон
py.user.nextи такое бывает, когда на работу знакомых устраиваешь
Ты ещё скажи, что чтобы разрабатывать под веб, можно и вообще не знать программирования, так как можно просто позвонить программисту, а он уже в свою очередь всё напишет тебе.
py.user.nextзнаю
Ты не знаешь, да, что и HTML-код, и CSS-код, и JavaScript-код можно генерировать динамически?
py.user.nextи так то же бывает, а бывает, что работа делится на бекенд и фронтенд и с бекенда нужно лишь апи, а на фронтенде происходит получение данных и сборка итоговой страницы из шаблонов, не слышал о таком?
py.user.nextбекендер должен работать по тз, тз-то хоть знаешь что такое?
Да и кому нужен такой бэкендер, который ничего не понимает в том, что делает? Как он будет понимать, что от него хотят и для чего, какие элементы он должен сделать?
py.user.next
А ты не можешь объяснить, зачем она тебе нужна вдруг стала? Это чтобы чисто ребята ламером не обозвали?
Аннотация нужна для линтеров.
Так-то она только переполняет код лишними буквами. Если же код неясен и смутнопонятен без аннотаций, то это просто код такой низкого качества.
py.user.next
К тому, что ты с классами не напишешь даже это, а без классов - тем более. Просто, чтобы оно работало, надо уметь составлять алгоритмы, а ты их не умеешь составлять, потому что решил пропустить этот шаг и начать с самого современного, что ты там откопал в пространстве этой области, - с шаблонов ООП.
Можешь сколько угодно ходить вокруг компьютера и рассказывать ему, как ты ООП знаешь и используешь со всеми модностями, только вот программа от этого не напишется и тем более фурычить не будет сама по себе.
py.user.nextда что ты, а ты спросил он там есть?
А зачем он вообще лезет в этот код? Там есть интерфейс - пользуйся. Всё спрятано за интерфейсом.
py.user.next
Ну, если бы ты мог понять этот принцип, ты бы вопроса этого не задавал бы? По ним-то ты и палишься. Это вопрос в стиле
py.user.next
Ну, после PHP ты хотя бы процедурную парадигму должен знать-то? И почему ты её императивной называешь?
Отредактировано texsce (Ноя. 9, 2022 11:35:06)
Офлайн