Рубрики
Без рубрики

Создание классов в Python

Основы Python темы-это массив и словари, но основы в объектно-ориентированном … Tagged с помощью Python, OOP, программирования.

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

Таблица контента:

  • Что такое ООП?
    • Процедурное программирование
    • Функциональное программирование
    • Оп в двух словах
  • Создание класса в Python
  • Добавление методов
  • Наследование
  • Супер функция

Что такое ООП?

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

Процедурное программирование

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

print('welcome in the program that calculates the area of a square')

loop = 'y'

while (loop == 'y'):
    side_length = int(input('enter the side of the square: '))
    side_length *= side_length
    print (f'the area is: {side_length}')
    loop = input('do you want to calculate another square? (y/n)')

print('goodbye...')

Функциональное программирование

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

print('welcome in the program that calculates the area of a square')

loop = 'y'

while (loop == 'y'):
    print ('Enter 1 for calculate the area')
    print('Enter 2 for calculate the perimeter')
    choice = input('> ')
    if (choice == '1'):
        calculateArea()
    elif (choice == '2'):
        calculatePerimeter()
    loop = input('do you want to calculate something else? (y/n)')

print('goodbye...')

Оп в двух словах

Объектно-ориентированное программирование-это парадигма, где данные разделены на логические единицы, называемые объектами. Объект содержит данные (переменные) и методы (функции). Редко вы будете делать объект непосредственно в ООП, кроме как для учебных целей. Вы определите классы, которые являются чертежом для создания объектов, которые являются экземплярами этого класса.

Создание класса в Python

Чтобы создать класс, мы используем ключевое слово учебный класс . Ключевое слово Пасс Инициализирует функцию пустоты, и, поверьте мне, это будет очень полезно позже:

class Animal:
    pass

Для инициализации функции мы используем ключевое слово __init__ Как это было бы функцией для провозглашения свойств или реквизит , переменные, которые принадлежат классу/объекту. В аргументах init должен поставить хотя бы одну переменную, называемую я Анкет Имя необязательно, но лучше использовать я Чтобы избежать путаницы, написания программы:

class Animal():
    # with self we put the properties that we want into the class
    def __init__(self, num_legs, wings):
        # to initialize the props python use that syntax:
        self.num_legs = num_legs
        self.wings = wings
        # this to initialize this variables *into* the object
        # we are creating

Для создания объекта из созданного нами класса мы должны назначить класс, поскольку он будет функцией с его аргументами в нем:

wolf = Animal(4, False)

Создание объекта со свойствами без вставки их в объект, который мы создаем, приведет к ошибке.

Теперь мы создали объект Волк у которого 4 ножки и у него нет крыльев:

print(wolf.num_legs)
4

Добавление методов

Истинная сила объектов опирается на то, что они могут сделать. Метод является функцией объекта, который может изменить его статус:

# re-writing the class animal
class Animal():
    def __init__(self, num_legs, wings):
        self.num_legs = num_legs
        self.wings = wings

    # a method of an object has as first argument
    # self
    def canFly(self):
        if self.wings == False:
            print('this animal can\'t fly')
        else:
            print('this animal can fly')

    def unLuckyEvent(self):
        print('Something very bad happened to the animal...')
        self.num_legs -= 1
        print(f'now it has only {self.num_legs} legs...')

wolf = Animal(4, False)

Наследование

Создание объектов важно для определения иерархии классов. Наследство позвольте нам построить класс поверх другого класса. Класс, который унаследован, называется родительский класс Анкет Класс, который наследует, называется Детский класс Анкет

Добавление функции init в детский класс переопределяет родительскую

Супер функция

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

class Fox(Animal):
    # in the init we put all the props of the class
    def __init__(self, num_legs, wings, fur_color):
        # in the super we put the 
        # props of the parents alone
        super().__init__(num_legs, wings)
        # then we define the props of the child 
        self.fur_color = fur_color

southernFox = Fox(4, False, 'red')

Но нам не нужно всегда писать все реквизиты при создании объекта, мы можем просто присвоить им значение, если он всегда будет одинаковым:

class Fox(Animal):
    def __init__(self, num_legs, wings, fur_color):
        super().__init__(num_legs, wings)
        self.fur_color = fur_color
        # some props will be always the same and can't change
        self.family = 'canidae'

southernFox = Fox(4, False, 'red')

То же самое относится и к методам:

class Fox(Animal):
    def __init__(self, num_legs, wings, fur_color):
        super().__init__(num_legs, wings)
        self.fur_color = fur_color
        self.family = 'canidae'

    # if a child's method has the same name of a parent's method
    # the parent one will be overwritten
    def explanation(self):
        print(f'The fox is a type of {self.family},\nthis in particular has a {self.fur_color} fur')

Сноска: Присвоение метода дочернему классу с тем же именем метода родительского класса будет переоценить метод родителя.

Последние мысли

Вы можете найти этот и другой код Python в моем GitHub Анкет Если у вас есть сомнения или критики, не стесняйтесь оставить комментарий.

Оригинал: “https://dev.to/gabrieleboccarusso/creating-classes-in-python-2jje”