DevGang
Авторизоваться

Объектно-ориентированный Python 1

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

Объектно-ориентированный Python

Чтобы работать с объектами в Python, нам сначала нужно создать класс, в котором мы будем хранить блок кода нашего объекта. Чтобы создать класс, необходимо использовать термин class, а затем назвать наш класс, следуя шаблону CamelCase, за которым следует двоеточие, а затем слово pass, которое работает как возврат. Посмотрите пример кода ниже:

class CodigoTeste:

    pass

После того, как класс создан, нам, наконец, нужно создать для него объект, и для этого мы создаем переменную, в которой будет храниться созданный класс. Пример: test = CodigoTeste() и так у нас есть наш первый объект.

Мы можем создавать функции в нашем классе для лучшего хранения и организации нашей информации, а также функции, которые уже существуют в Python, которые называются методами-конструкторами, например: init(self) — функция, обычно используемая для начала кода. Параметр self — это то место, где будет ссылка на наш объект.

class CodigoTeste:
    def __init__(self, nome, idade, estado):
        self.nome = nome
        self.idade = idade
        self.estado = estado

После этого нам просто нужно передать информацию внутри нашей переменной в терминале, например: teste = CodigoTeste('Melyssa', 19, 'São Paulo') и все, мы создаем еще один Объект!

Чтобы получить доступ к информации, которая была передана внутри объекта, нам просто нужно вызвать переменную, к которой мы хотим получить доступ, и использовать точку (.) рядом с параметром, к которому мы хотим получить доступ. Например: test.name вернет «Melyssa».

Частный метод

Если у нас есть какой-либо метод внутри нашего класса, который мы хотели бы сообщить и сделать приватным, нам нужно использовать __ перед его именем. Так что разработчик, который увидит наш код, поймет, что этот метод является приватным и что его нужно использовать не напрямую, а другим методом. В идеале, если вы хотите изменить или получить доступ к личной информации, создайте метод get (в случае получения информации) и метод set (в случае изменения информации). Например:

class CodigoTeste:
    def __init__(self, nome, idade, estado):
        self.__nome = nome
        self.__idade = idade
        self.__estado = estado

    def get_nome(self):
        return self.__nome

    def set_idade(self, idade):
        self.__idade = idade

teste = CodigoTeste('Melyssa', 19, 'SP')
teste.get_nome()
'Melyssa'
teste.set_idade(20)

Свойства

Мы также можем использовать свойства, чтобы преобразовать «методы» в объект. Мы используем эти свойства в приватных классах, обращаясь к ним и что-то модифицируя. Например, мы можем создать свойство, которое всегда оставляет первую букву имени человека в верхнем регистре, избегая синтаксических ошибок, для этого мы используем @property чуть выше. Пример:

class Nome:

    def __init__(self):
        self.__nome = nome

    @property
    def nome(self):
        return self.__nome.title()

teste = Nome('melyssa')
teste.nome
'Melyssa'

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

Если вы хотите изменить значение имени, мы также можем использовать свойство setter, где мы используем следующий синтаксис: @(имя атрибута).setter. Таким образом, мы можем изменить значения нашего желаемого метода. См. пример кода ниже:

@nome.setter
def nome(self, nome):
    self.__nome = nome

teste = Nome('Melyssa')
teste.nome = 'daniel'
teste.nome
'Daniel'

Методы класса (статические методы)

Если мы хотим запрограммировать метод, в котором все объекты имеют одну и ту же общую информацию, мы можем использовать статические методы. Например, учетная запись "Banco do Brasil" всегда будет иметь код учетной записи «001», поэтому мы можем создать для нее статический объект. Для этого мы используем @staticmethod чуть выше нашей желаемой функции. См. код ниже:

@staticmethod
def codigo__BB():
    return '001'

Как видите, у этого метода нет параметра self, отвечающего за хранение ссылки на объект.

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу