Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Базовые понятия
- Переменная - поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным и изменять значение в ходе выполнения программы.
- Имя переменной - это строка символов, которая отличает ее от других переменных и объектов программы (элементов управления).
- Объект — это сущность, которой можно посылать сообщения и которая может на них реагировать, используя свои данные. Объект — это экземпляр класса, базовый элемент ООП.
- У объекта есть состояние, поведение и идентичность; структура и поведение подобных объектов определены в их общем классе ». Некоторые вещи не являются объектами, но являются атрибутами; например возраст, цвет.
- Класс - под классом подразумевается некая сущность, которая задает некоторое общее поведение для объектов. Класс определяет для объекта контракт, то есть правила, с помощью которых с объектом могут работать другие объекты (обычно это делается с помощью определения методов класса).
- Принципы ООП
- Абстра́кция — в объектно-ориентированном программировании это придание объекту характеристик, которые отличают его от всех других объектов, четко определяя его концептуальные границы. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций, таким образом, данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.
- Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство.
- Инкапсуля́ция — свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента (что у него внутри?), а взаимодействовать с ним посредством предоставляемого интерфейса (публичных методов и членов), а также объединить и защитить жизненно важные для компонента данные. При этом пользователю предоставляется только спецификация (интерфейс) объекта.
- Наследование — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.
- Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию.
- Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования[1].
- Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
- Остальное
- Concurrency means multiple tasks which start, run, and complete in overlapping time periods, in no specific order. Parallelism is when multiple tasks OR several part of a unique task literally run at the same time, e.g. on a multi-core processor.
- Декоратор в Python – это функция, которая принимает другую функцию в качестве аргумента. Декоратор модифицирует или повышает принятую функцию и выдает измененную. Это значит, что когда вы вызываете декорированную функцию, вы получите функцию, которая может иметь небольшие отличия, в виде дополнительных функций, совмещенных с базовым определением.
- При передаче аргументов по ссылке - мы манипулируем самим объектом, по значению - его "коппией".
- Python
- Список всех атрибутов - dir<obj> /* _ - protected, __ - private */
- Всех публичных - [attr for attr in dic<obj> if not attr.startswitch('__')
- Список методов - [arg for arg in dir<obj> if callable (getattr(<obj>, arg)]
- help хранится в <obj>.__doc__
- Типы даных: Изм - list, set, dict, custum classes; не изм - int, float, complex, str, tupple.
- Cп. каталогов, в которых py ищет модули - import sys, sys.path
- Как раб. змея? - Лекс анализ, парсинг, компиляция, интерпретация
- __init__.py нужен чтобы пайтон рассматривал каталоги, как содержащие пакеты
- __name__ == '__main__' для определения был ли файл импортирован или запущен
- Путь импортированого модуля - <module>.__file__
- *args, **kwargs - когда невозможно понять сколько аргументов принимает ф-ия
- self - договоренность
- venv - Каждый проект может иметь свои собственные зависимости вне зависимости от того, какие зависимости у другого проекта. Изолированная вирт. среда.
- SoftServe будет +
- SQL vs noSQL - В реляционных СУБД данные представлены в виде таблиц, в то время как в нереляционных — в виде документов, пар «ключ-значение», графов или wide-column хранилищ.
- MVC - Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние[1].
- Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели[1].
- Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений[1].
- SOLID - S SRP[5]
- Принцип единственной ответственности (The Single Responsibility Principle)
- Каждый класс выполняет лишь одну задачу.
- O OCP[6]
- Принцип открытости/закрытости (The Open Closed Principle)
- «программные сущности … должны быть открыты для расширения, но закрыты для модификации.»
- L LSP[7]
- Принцип подстановки Барбары Лисков (The Liskov Substitution Principle)
- «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы.» См. также контрактное программирование.
- Наследующий класс должен дополнять, а не изменять базовый.
- I ISP[8]
- Принцип разделения интерфейса (The Interface Segregation Principle)
- «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения.»[9]
- D DIP[10]
- Принцип инверсии зависимостей (The Dependency Inversion Principle)
- «Зависимость на Абстракциях. Нет зависимости на что-то конкретное.»[9]
Add Comment
Please, Sign In to add comment