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

Что такое ООП

Объектно-ориентированное программирование или ООП — это модель программирования, в которой программы организованы вокруг объектов или данных, а не функций и логики. В более упрощенном смысле ООП фокусируется на объектах, которыми разработчики хотят манипулировать, а не на логике, необходимой для манипулирования ими. Идти с этим Хотя, когда Гвидо создал python, он имел в виду эту философию с тем, что он назвал «первоклассным всем».

например, допустим, у меня есть квадрат, это будет класс

Итак, мы только что объявили квадрат имени класса, и, как вы можете видеть, класс получает что-то очень важное из Squares, это точно квадрат, поэтому мы только что объявили размер имени экземпляра, так что же такое экземпляр?

Пример

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

self._size = size

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

Атрибут экземпляра

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

Class Robot:
    ability = "My specialty"
    Robot_flyer.ability = "I can fly"
    Robot_walker.ability = "I can walk"

Итак, как вы можете видеть, у каждого робота свое качество, и так оно и есть.

Атрибут класса

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

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

Class Robot:
count = 0
def __init__(self, ability):
    self.ability = ability
    count += 1

robot_flyer.ability = "I can fly"
robot_walker.ability = "I can Walk"

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

Различия между этими двумя, преимущества и недостатки

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

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

Как это сделать на Питоне

Питонический способ — это действительно интересный способ, но, как вы видели в предыдущем примере, мы используем что-то, называемое _init_, которое является методом экземпляра, вызываемым при создании нового объекта, поэтому нам придется использовать его, но мы также должны использовать что-то, называемое .

Итак, что же такое все @ вещи?

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

Итак, скажем, если мы пойдем по этому примеру, я хочу создать Square, я бы сделал это с этим значением. коннотация _init_ делает это следующим образом: ‹myclassname›.‹attribute›

Таким образом, вы можете сделать это таким образом

my_square = Square(10)

Вам не кажется, что намного проще?

__DICT__

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

Вывод

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