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

Python Basic объектно -ориентированное программирование

Предупреждение: это длинный учебник (также, это мой первый урок, так что, вероятно, это не будет хорошо: … Tagged с Python, OOP.

Предупреждение: Это длинный учебник (также, это мой первый урок, так что, вероятно, это не будет хорошо:)

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

Вкусно, но никто не может прочитать его, потому что никто не может прочитать Спагетти Анкет

Тем не менее, еще один способ кода появился, этот метод был не похож на спагетти, а скорее как аккуратные, организованные Хлебные палочки Анкет

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

class GenericKitchen:

    def __init__(self, numOfApplicances, kitchenSize):
        self.numberOfApplicances = numOfApplicances
        self.kitchenSize = kitchenSize # kitchenSize is a tuple (width, height)
        print("I have been inited")

    def getInventory(self):
        kitchenWidth = self.kitchenSize[0]
        kitchenHeight = self.kitchenSize[1]
        print(f"Number of appliances: {self.numberOfApplicances}")
        print(f"Size of kitchen: {kitchenWidth} by {kitchenHeight}")

Авария:

class GenericKitchen:

Это просто используется, чтобы сказать Python, что Geneickitchen это класс

def __init__(self, numOfAppliances, kitchenSize):
        self.numberOfAppliances = numOfAppliances
        self.kitchenSize = kitchenSize 
        print("I have been inited") 

__init__ Метод (a.k.a функция) – это метод Dunder ( d uble под счет). Метод Dunder – это тип функции, которая позволяет создавать класс для взаимодействия со встроенными функциями, однако это __init__ Метод важен, потому что он позволяет. я сообщает Python, что эта переменная является частью Geneickitchen Класс (подробнее об этом позже).

def getInventory(self):
        kitchenWidth = self.kitchenSize[0]
        kitchenHeight = self.kitchenSize[1]
        print(f"Number of appliances: {self.numberOfApplicances}")
        print(f"Size of kitchen: {kitchenWidth} by {kitchenHeight}")

Получить инвентарь – это функция, которая наследует от я и поэтому наследует все переменные от себя. Кухня Whidth и KitchenHeight являются локальными переменными, что означает, что их нельзя использовать вне функции.

Чтобы позвонить в класс, введите:

kitchenDimensions = (100, 100)
# ^^^^^^^^^^^^^^^ 
# Don't use such long names, they are a pain to type
normalKitchen = GenericKitchen(5, kitchenDimensions)

>>>  I have been inited

Вам может быть интересно, почему Python Print Я был подготовлен На экране, если вы не называли функцию. Ну, причина, по которой в том, что __init__ Метод – это метод Дандер, его функция состоит в том, чтобы сделать что -то, когда называется класс. Это похоже на

number = list("hello")
print(number)

>>>  ["h", "e", "l", "l", "o"]

Почему, потому что список это класс. Список __init__ Метод генерирует список и возвращает его в число переменных.

Себя

Я – очень важная концепция для понимания (понимайте себя тоже:)

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

class RandomClass():
    def __init__(self):
        self.name = "Jim"
        self.printName()
        self.name = "Tomi"

    def printName(self):
        print(self.name)

    def setAge(self):
        self.age = 14

rand = RandomClass()
rand.printName()

>>> Jim
    Tomi

Что происходит, так это то, что с каждым определением класса, я определяется с этим. себя Затем становится контейнером для всего, что объявлено в классе, который разделяется среди класса. Когда printName принимает аргумент себя , он принимает все переменные и функции, связанные с я такие как Self.age и Self.Setage . Когда мы передаем класс переменной, происходит то, что я передается с ним, я тогда равняется имени переменного тока

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

Оригинал: “https://dev.to/tominekan/python-basic-object-oriented-programming-2587”