Архив метки: Python

Для чего используется Python?

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

Мы полностью понимаем это.

Когда вы новичок в мире программирования, вас легко может ошеломить огромное количество языков программирования.

Вероятно, вы получили много советов, чтобы начать свое обучение программированию с Python.

Но вы все еще не уверены.

Что вы действительно можете сделать с Python?

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

Итак, начнем!

 

Python — это язык программирования общего назначения

Давайте уберем это с дороги.

Прежде всего, Python — это язык программирования общего назначения.

Как и любой другой язык программирования, Python — это инструмент, который вы можете использовать для создания программного обеспечения. ЛЮБОЕ ПО.

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

Если вы решите изучать C++, Java или Python … у вас все будет хорошо. Все они очень популярные языки, которые очень популярны в нашей отрасли.

Вот список самых популярных языков программирования по индексу TIOBE.

Для чего используется Python?

 

Индекс TIOBE — это известный показатель популярности языков программирования.

Как видите, Python действительно высоко в списке!

В дополнение к своей популярности, Python имеет то преимущество, что он является одним из самых простых в изучении языков программирования.

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

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

Python также очень хорошо подходит для определенных типов приложений.

Об этом мы и поговорим в следующих разделах.

 

1- Веб-приложения

Еще одна область, в которой Python выделяется, — это создание веб-приложений.

Многие люди заинтересованы в создании собственных веб-приложений. Может быть, вы хотите создать свой личный сайт, или вы хотите иметь бизнес в Интернете.

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

В качестве примера, скажем, вы набираете yahoo.com в своем браузере.

Ваш браузер отправляет запрос на веб-сервер Yahoo, используя протокол связи HTTP.

Веб-сервер Yahoo получает этот запрос и связывается с многочисленными внутренними службами, также используя HTTP (или RPC ).

Эти серверные службы в конечном итоге отвечают обратно на веб-сервер, который собирает несколько файлов (HTML/CSS/JavaScript) и возвращает их обратно в ваш браузер.

Наконец, ваш браузер читает эти файлы и отображает домашнюю страницу Yahoo на вашем экране.

Так как же Python вписывается в эту картину?

Python может быть использован для программирования бэкэнд-сервисов.

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

Тем не менее, есть некоторые библиотеки и платформы Python, которые немного облегчают эту работу.

Например, Flask и Django являются популярными веб-фреймворками, которые позволяют вам писать свои веб-приложения, используя все эти технологии в одном «месте».

Flask — это микро-фреймворк. Это простой веб-фреймворк, способный отправлять и получать сетевые запросы HTTP.

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

У Flask и Django сильные сообщества и отличная документация.

 

2- Численный анализ, наука о данных и визуализация

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

Мы изучали и использовали их в школе, но как мы можем связать этот математический мир с миром программирования?

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

Python определенно находится на вершине этого списка.

В этом домене есть множество библиотек Python, наиболее часто используемыми являются NumPy , SciPy и Matplotlib.

Давайте поговорим о каждом из них, и что они могут сделать.

NumPy (сокращение от Numeric Python) — это библиотека Python, специально созданная для эффективной и быстрой обработки операций над многомерными массивами. Эти операции включают в себя практически любую операцию, которую вы можете выполнить на матрице.

Но разве мы не можем просто выполнять матричные операции, используя обычные списки в Python?

Короче говоря, NumPy оптимизирован для обработки больших объемов числовых данных. Так что это действительно сводится к производительности.

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

Хорошо, а как насчет SciPy ?

Scipy (сокращение от Scientific Python) — это библиотека Python для решения математических, научных и инженерных задач. Вы можете думать об этом как об абстракции поверх NumPy (он на самом деле использует NumPy под капотом).

Некоторыми примерами операций, которые вы можете выполнять с помощью Scipy, являются преобразования Фурье, числовые интегрирования, градиенты, производные и многое другое…

Теперь, когда у вас есть все ваши числовые результаты, как вы на самом деле визуализируете эти результаты в симпатичном графике или круговой диаграмме?

Это где используется Matplotlib.

Matplotlib — это библиотека для создания визуализаций, таких как графики, гистограммы, линейные диаграммы, круговые диаграммы и т. д.

Он может строить 2D-графики, а также 3D-графики.

Вот пример того, как выглядят графы Matplotlib. Эти примеры взяты с сайта Matplotlib.

Для чего используется Python?

 

3- Машинное обучение

Сколько раз вы смотрели название на Netflix только потому, что оно было рекомендовано вам? Мы думаем, что этого достаточно.

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

Хотя концепции машинного обучения существовали в теории с 1960-х годов, лишь недавно он начал набирать обороты, главным образом, из-за огромной доступности вычислительных ресурсов, а также из-за множества языков, которые делали написание приложений машинного обучения «проще».

Python стал «де-факто» языком программирования для написания приложений машинного обучения.

Так что если вы хотите заниматься наукой о данных и машинным обучением в своей карьере, то изучение Python является обязательным!

Итак, скажи мне, какие библиотеки Python я должен изучать, чтобы писать приложения для машинного обучения?

Их много, но самыми популярными являются scikit-learn, Tensorflow и PyTorch.

Для разработки типового приложения для машинного обучения эти библиотеки облегчают работу!

С этими библиотеками вам нужно будет понять, почему вы используете алгоритм ML, как он работает и каковы его недостатки, но вам не нужно беспокоиться о том, «как он реализован».

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

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

Так что имейте это в виду, речь идет только об обучении использованию библиотеки Python.

 

4- Raspberry Pi

Когда вы росли, некоторые из вас хотели создать ту шикарную компьютерную систему, которую купил ваш друг. Но вы этого не сделали по понятным причинам.

Благодаря эволюции ресурсов обработки, теперь вы можете купить полноценный компьютер по доступной цене.

Например, очень популярной компьютерной системой является Raspberry Pi.

Raspberry Pi — это компьютер с одной крошечной платой, в котором есть все компоненты, которые типичный компьютер имел бы на одной плате размером с вашу ладонь.

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

Хорошо, это круто и все, но как это связано с Python?

Угадайте, что? На самом деле вы можете запрограммировать свой Raspberry Pi, используя Python.

Под этим мы подразумеваем не только то, что вы можете писать программы на Python, аналогичные тем, которые пишете на типичном компьютере, но также вы можете программировать само оборудование, взаимодействовать с выводами ввода/вывода, индикаторами дисплея и даже внешними устройствами. Это довольно круто!

Мы считаем, что игра с Raspberry Pi — это идеальный способ узнать, как программное и аппаратное обеспечение взаимодействуют друг с другом.



2020-05-21T14:15:04
Python

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 6

Уровень 5: Практика интервьюирования в Python

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

Вам нужно только пройти это ужасное собеседование по кодированию.

На самом деле их серия.

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

Лучший способ пройти собеседование по кодированию — это дать себе достаточно времени для подготовки.

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

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

Это когда начинается уровень 6.

 

Уровень 6: Продвинутый Python

Если вы хотите осваивать свободное владение языком Python и поднять свои навыки на следующий уровень, тогда мы настоятельно рекомендуем книгу “Fluent Python”.

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

В  Fluent Python некоторые из концепций, которые вы уже изучили из вводных книг, рассматриваются с другой стороны, более подробно и с большей глубиной.

В дополнение к этому вы также узнаете несколько новых концепций.

Например, некоторые из новых понятий, которые вы изучите в этой книге,

  1. Функции высшего порядка: объясняет, как функции могут быть использованы в качестве первого класса
  2. Объекты в Python
  3. Управление потоками: охватывает тему генераторов, менеджеров контекста, сопрограмм и параллелизма
  4. Метапрограммирование: по сути это написание кода, который манипулирует кодом. Некоторые из обсуждаемых здесь тем — декораторы и мета-классы.

 

Необязательно 1: библиотеки и фреймворки Python

Теперь у вас есть все основы, вы профессионал в Python.

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

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

Итак, давайте поговорим о некоторых из самых популярных библиотек и сред Python.

 

1. Создание сервисов API с помощью Python (Flask)

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

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

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

Другими словами, каждый из этих сервисов будет предоставлять HTTP API, с которым смогут общаться другие сервисы.

С учетом сказанного, это очень хорошая инвестиция, чтобы узнать, как создавать сервисы API в Python.

И одна из самых популярных библиотек Python, которая делает это очень простым — это Flask.

 

2. Создание веб-приложений с помощью Django

Django — это полноценный веб-фреймворк, который позволяет вам создавать в Python целое веб-приложение (как интерфейсное, так и фоновое).

Изучая Django, вы также познакомитесь с некоторыми понятиями, которые очень популярны в других веб-фреймворках на других языках, таких как MVC (модель-представление-контроллер) и ORM (объектно-реляционное отображение).

MVC — это способ структурирования и организации вашего веб-приложения, тогда как ORM — это метод, который устраняет разрыв между объектно-ориентированным программированием и доступом к данным в базе данных.

И хотя мы обсуждаем ORM, стоит упомянуть, что вам стоит взглянуть на SQLAlchemy,который является очень популярной и широко используемой библиотекой ORM в Python.

Так что засучите рукава и создайте свое первое веб-приложение.

 

3. Библиотеки машинного обучения

Python стал де-факто языком для машинного обучения и науки о данных.

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

Если вы хотите стать специалистом по данным, мы настоятельно рекомендуем изучить математические и статистические основы машинного обучения, прежде чем изучать библиотеки ML на Python.

Введение в статистическое обучение  — отличное место для начала.

Как только вы освоите основы, начните играть с этими библиотеками Python.

  • scikit-learn. В этой библиотеке есть все под солнцем, когда дело доходит до алгоритмов ML.
  • Tensorflow. Еще одна очень популярная среда машинного обучения с открытым исходным кодом.
  • pandas. Популярная библиотека для анализа данных.

 

Необязательно 2: реализация Python (CPython)

Python — это интерпретируемый язык.

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

Хотите посмотреть, как выглядит байт-код для простой программы Hello World ?

Давайте создадим исходный файл helloworld.py

# helloworld.py

print("привет мир")

 

Вот как просмотреть байт-код для приведенного выше исходного кода

$ python3 -m dis helloworld.py

2           0 LOAD_NAME                0 (print)

            2 LOAD_CONST               0 ('привет мир')

            4 CALL_FUNCTION            1

            6 POP_TOP

            8 LOAD_CONST               1 (None)

           10 RETURN_VALUE

 

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

Существуют различные реализации Python для компилятора и интерпретатора.

Тем не менее, CPython  является стандартным и наиболее широко используемым. Это полностью написано на C.

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

Так почему мы говорим о реализации Python?

Вам действительно нужно знать эти мелкие детали Python, чтобы стать мастером Python?

Честно говоря, ответ — нет.

Но если вам интересно узнать, как реализован список, кортежи, функции и т. д. в Python, и если вы хотите выучить новый язык (C) по ходу дела, то, возможно, вам следует рассмотреть возможность участия в CPython.

 

Начало:



2020-04-30T09:14:58
Python

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 5

Уровень 4. Структуры данных и алгоритмы в Python

Если вы достигли этого уровня, похлопайте себя по плечу.

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

Однако чего-то не хватает.

Вы все еще недостаточно опытны в написании эффективного кода.

Что мы имеем в виду?

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

Это нормально.

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

Не верите нам? Посмотрите на этот простой код, который вычисляет n-е число Фибоначчи.

def fib(n):

    if n < 2:

        return n

    return fib(n-2) + fib(n-1)



print(fib(100))

 

Код выглядит достаточно простым и очень простым, верно?

Попробуйте использовать этот код для вычисления  fib (100)

 

ПРЕДУПРЕЖДЕНИЕ
[Это займет очень много времени]

 

Теперь давайте сделаем простую модификацию кода.

def fib(n, d):

    if n < 2:

        return n

    if n not in d:

        d[n] = fib(n-2, d) + fib(n-1, d)

    return d[n]



print(fib(100, {}))

 

На этот раз все это заняло несколько миллисекунд, и вы получите ответ — 354224848179261915075 на тот случай, если вам интересно.

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

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

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

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

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

Мы действительно это имели в виду!

 

Начало:



2020-04-25T14:00:19
Python

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 4

Уровень 3: Программирование сокетов

К настоящему времени вам должно быть очень удобно писать код Python, который работает на одной машине.

Но что, если вы хотите написать код, который связывается с другими машинами по сети?

Если вы хотите сделать это, то вам нужно узнать о программировании сокетов.

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

Это как волшебство. Мы до сих пор помним волнение, которое испытывали, когда у нас было два ноутбука, которые общались друг с другом по сети Wi-Fi.

Выполните эти три шага, чтобы начать.

 

Шаг 1: Написать программу echo

На этом этапе вы будете использовать модуль сокетов Python для записи простого TCP-сервера на одном компьютере и TCP-клиента на другом.

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

Идея программы Echo проста. Клиентская сторона читает сообщение от пользователя и отправляет это сообщение на сервер по сети.

На стороне сервера, когда это сообщение получено, сервер передает то же сообщение обратно клиенту.

Думайте о программе Echo как о программе Hello World, но для программирования сокетов.

После этого вы можете перейти к более сложным программам.

 

Шаг 2: Поиграйся с HTTP

Когда вы освоитесь с написанием простых клиент-серверных приложений TCP, вы можете начать использовать модуль запросов Python для отправки и получения HTTP-сообщений.

Это особенно полезно, потому что подавляющее большинство веб-служб в настоящее время предоставляют интерфейс HTTP API, с которым вы можете взаимодействовать программно. Например, карты Facebook , Twitter и Google имеют интерфейсы HTTP API, с которыми может взаимодействовать ваш код.

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

 

Шаг 3: Знай свои инструменты

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

Однако отладка сетевых программ немного отличается от отладки обычных программ.

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

Вот некоторые из самых популярных сетевых инструментов, которые вам понадобятся:

  • ping —  используется для проверки связи между вашей машиной и другой.
  • netstat  — это универсальный сетевой инструмент, который позволяет вам, помимо прочего, отслеживать сетевые соединения, как входящие, так и исходящие.
  • tcpdump — один из моих любимых инструментов для изучения сетей. Это инструменты позволяют вам слушать, захватывать и анализировать реальные пакеты, входящие и выходящие из вашего компьютера через любой сетевой интерфейс.
  • Wireshark — это приятный графический интерфейс, который делает практически все, что может сделать tcpdump. Мы рекомендуем начать с Wireshark, прежде чем переходить к tcpdump только потому, что он немного более удобен для пользователя.

И, как мы уже сказали, чтобы понять, что означают все эти Get, SYN , SYN ACK , FIN,вам нужно сначала изучить основы сети.

 

Начало:

 

Продолжение:



2020-04-23T18:29:52
Python

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 3

Уровень 2: совместное и параллельное программирование

Дни одноядерных процессоров давно прошли.

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

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

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

Но позвольте нам прояснить одну вещь.

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

В этой ситуации мы лично предпочли бы вместо его golang (или старый добрый C ).

Но так как это статья о Python, давайте сосредоточимся на Python.

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

Вот некоторые из этих концепций.

 

Взаимное исключение

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

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

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

 

Замки

Замки являются одной из различных реализаций взаимного исключения.

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

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

И после того, как это сделано с ресурсом, он снимает эту блокировку.

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

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

 

Тупики

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

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

В этой тяжелой ситуации ни поток A, ни поток B не могут развиваться дальше, поэтому ваша программа закрыта!

Вот что такое тупик.

И это случается чаще, чем вы думаете.

Что еще хуже, это также одна из самых сложных проблем для отладки.

 

Состязание

Как мы упоминали ранее, состояние гонки — это ситуация, которая возникает, когда доступ к общему ресурсу не защищен (например, блокировками).

Это может привести к катастрофическим неожиданным результатам.

Посмотрите на этот пример.

import threading

# x это общее значение

x = 0

COUNT = 1000000



def inc():

    global x

    for _ in range(COUNT):

        x += 1



def dec():

    global x

    for _ in range(COUNT):

        x -= 1



t1 = threading.Thread(target=inc)

t2 = threading.Thread(target=dec)

t1.start()

t2.start()

t1.join()

t2.join()



print(x)

 

Вот что делает код выше:

Существует общая глобальная переменная x, которая инициализируется в 0.

Две функции inc и dec работают параллельно. inc () увеличивает значение x 1 миллион раз, тогда как dec () уменьшает значение x 1 миллион раз.

Быстро пройдясь по коду, можно сделать вывод, что конечное значение x должно быть 0 … но так ли это?

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

 $ python3 race.py

158120

 $ python3 race.py

137791

 $ python3 race.py

-150265

 $ python3 race.py

715644

 

Причина, по которой это происходит, заключается в том, что общий ресурс x не защищен (например, блокировками).

 

Параллельное программирование в Python

Только после того, как вы освоитесь с концепциями, рассмотренными выше, вы готовы научиться писать параллельные программы на Python.

Во-первых, вы должны узнать, как определение многопроцессорности в Python отличается от многопоточности. (Кстати, это совершенно не связано с потоками и процессами с точки зрения ОС ).

Чтобы понять это различие между многопроцессорностью и многопоточностью с точки зрения Python, вам необходимо изучить и понять глобальную блокировку интерпретатора (GIL).

Вам также необходимо узнать о потоках, очереди и многопроцессорных  модулях Python.

Все эти модули предоставляют вам примитивы, необходимые для написания параллельных программ.

 

Начало:

 

Продолжение

 

Продолжение следует…



2020-04-20T17:45:24
Python

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 2

Уровень 1: объектно-ориентированное программирование

Все в Python является объектом.

Вы либо слышали это, либо вам суждено услышать об этом 🙂

Но подождите минуту, что именно является объектом?

Есть много разных способов, моделей или парадигм для написания компьютерных программ.

Одна из самых популярных парадигм программирования называется объектно-ориентированным программированием (ООП).

В объектно-ориентированном программировании  объект  относится к конкретному экземпляру  класса.

Класс — это как план состояния и действий, которые может выполнять объект.

Например, в Python класс Person может выглядеть примерно так.

class Person:

  def __init__(self, name, age):

    self.name = name

    self.age = age

  

  def get_name(self):

    return self.name

 

Объявленный выше класс описывает состояние и действия любого объекта Person.

Например, любой объект Person будет иметь имя и возраст. Эти два поля определяют состояние объекта.

В терминологии ООП имя и возраст называются атрибутами объекта.

Вы также можете вызвать get_name () для любого объекта Person, чтобы вернуть имя человека.

Мы называем get_name как метод.

Этот метод, в дополнении к любым другим методам , которые мы определяем, что определяет объект действия.

Другими слова, объект Python имеет атрибуты и методы, которые определены в объекте класса.

Вот как создать объект Person

>>> p = Person('Alice', 22)

>>> p.get_name()

'Alice'

 

Объектно-ориентированное программирование по сути является одним из способов структурирования и проектирования вашего кода.

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

Чтобы изучить ООП в Python, вам нужно пройти несколько шагов.

 

Шаг 1: Изучите концепции ООП

Как мы упоминали ранее, ООП — это парадигма программирования, способ структурирования и проектирования вашего кода.

Концепции ООП не являются эксклюзивными для Python, поэтому концепции, которые вы изучите, легко перейдут на любой другой язык программирования.

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

Поэтому убедитесь, что вы понимаете эти концепции на абстрактном уровне, прежде чем переходить к ООП на Python.

 

Шаг 2: Узнайте о классах и объектах Python

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

Осваивайте классы и создавайте объекты.

Напишите классы, которые наследуются от других классов, и исследуйте атрибуты и методы созданных объектов.

 

Шаг 3: Решить проблемы Python, используя ООП

Это важный шаг.

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

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

Снова продолжайте решать больше проблем, используя Python, но попробуйте структурировать ваши решения объектно-ориентированным способом.

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

 

Начало: Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 1

Продолжение:



2020-04-18T11:17:56
Python