Приветствую! Сегодня поговорим о такой штуке как декораторы.
Что это за зверь и с чем их едят?
Если коротко, декоратор - это функция, которая позволяет менять уже имеющуюся функцию, так мы можем менять поведение функции, добавлять в нее что-то новое.
Рассмотрим пример.
Мы написали функцию, которая позволит нам брать текст, а на выходе получать его же, но в двух вариантах: оригинальном и "с зажатым шифтом"
Для того, чтобы не переписывать этот кусок кода каждый раз, когда мы хотим его применить, в python придумали синтаксический сахар, декоратор мы можем вызвать через символ "@" и название декоратора.
Пример:
Здесь мы к функции func() применили созданный выше декоратор, на выходе получим такой результат:
Вот и все, теперь мы знаем, как работают декораторы, зачем они нам нужны и можем применять в своих проектах!
Удачи в обучении и работе!
#Python #PythonLearning #декораторы #питон #python_guides
Что это за зверь и с чем их едят?
Если коротко, декоратор - это функция, которая позволяет менять уже имеющуюся функцию, так мы можем менять поведение функции, добавлять в нее что-то новое.
Рассмотрим пример.
def text_upper(func):
def text_up():
text = str(func())
text_2 = text.upper()
print(text, text_2)
return text_up
Мы написали функцию, которая позволит нам брать текст, а на выходе получать его же, но в двух вариантах: оригинальном и "с зажатым шифтом"
Для того, чтобы не переписывать этот кусок кода каждый раз, когда мы хотим его применить, в python придумали синтаксический сахар, декоратор мы можем вызвать через символ "@" и название декоратора.
Пример:
@text_upper
def func():
return 'Hello!'
func()
Здесь мы к функции func() применили созданный выше декоратор, на выходе получим такой результат:
Hello! HELLO!
Вот и все, теперь мы знаем, как работают декораторы, зачем они нам нужны и можем применять в своих проектах!
Удачи в обучении и работе!
#Python #PythonLearning #декораторы #питон #python_guides
Классы и объекты... Что? Мы в школе?
Ну почти. Для более ясного понимания разберем на примере той самой школы.
Класс - это общие параметры, которые есть у всех учеников, допустим, у нас это будет имя, возраст.
А вот сами ученики будут зваться объектами. Объекты наследуют параметры класса, но могут иметь отличные значения, мало того, каждый объект класса может иметь еще и свой дополнительный параметр, которого нет ни у кого другого (индивидуальность, ага).
Чтобы создать класс, нужно объявить его с ключевым словом class и дать ему название (обязательно с большой буквы).
Рассмотрим на примере:
Здесь мы создали класс Users и добавили всем его объектам параметры name и age с дефолтными значениями
Теперь в нашем классе есть объект user_1, мы указали для него параметр name. Обратите внимание, параметр age мы не задавали, поэтому для user_1 он остается стандартным, в нашем случае равен нулю.
Давайте добавим оригинальности нашему первому объекту и укажем, что у него красные волосы.
Теперь, если мы захотим увидеть все характеристики user_1, нам будет доступен его цвет волос, но при этом такого параметра не будет у остальных объектов класса Users().
Что делать, если мы хотим добавить эту характеристику всем?
Существует функция setattr(), в скобках нам нужно указать через запятую класс, название параметра (в "") и стандартное значение:
Здесь мы добавили еще и новый объект (user_2), обратите внимание, у объекта user_1 мы указали значения возраста, пола и цвета, но у user_2 они примут стандартное значение, общее для класса Users.
Таким же способом мы можем удалить параметры из класса (функция delattr()), а также получить значение определенного параметра через функцию getattr().
Перед удалением параметра мы можем узнать, есть ли такой параметр вообще (при попытке удалить отсутствующий параметр программа выдаст ошибку), для этого используется функция hasattr(), в скобках указывается имя класса и параметр, ответ булевый (True/False)
#python #pythonlearning #class #python_guides
Ну почти. Для более ясного понимания разберем на примере той самой школы.
Класс - это общие параметры, которые есть у всех учеников, допустим, у нас это будет имя, возраст.
А вот сами ученики будут зваться объектами. Объекты наследуют параметры класса, но могут иметь отличные значения, мало того, каждый объект класса может иметь еще и свой дополнительный параметр, которого нет ни у кого другого (индивидуальность, ага).
Чтобы создать класс, нужно объявить его с ключевым словом class и дать ему название (обязательно с большой буквы).
Рассмотрим на примере:
class Users():
name = None
age = 0
Здесь мы создали класс Users и добавили всем его объектам параметры name и age с дефолтными значениями
user_1=Users()
user_1.name = 'Alex'
Теперь в нашем классе есть объект user_1, мы указали для него параметр name. Обратите внимание, параметр age мы не задавали, поэтому для user_1 он остается стандартным, в нашем случае равен нулю.
Давайте добавим оригинальности нашему первому объекту и укажем, что у него красные волосы.
user_1.h_color = 'red'
Теперь, если мы захотим увидеть все характеристики user_1, нам будет доступен его цвет волос, но при этом такого параметра не будет у остальных объектов класса Users().
Что делать, если мы хотим добавить эту характеристику всем?
Существует функция setattr(), в скобках нам нужно указать через запятую класс, название параметра (в "") и стандартное значение:
setattr(Users, 'h_color', 'blue')
user_2=Users()
Здесь мы добавили еще и новый объект (user_2), обратите внимание, у объекта user_1 мы указали значения возраста, пола и цвета, но у user_2 они примут стандартное значение, общее для класса Users.
Таким же способом мы можем удалить параметры из класса (функция delattr()), а также получить значение определенного параметра через функцию getattr().
Перед удалением параметра мы можем узнать, есть ли такой параметр вообще (при попытке удалить отсутствующий параметр программа выдаст ошибку), для этого используется функция hasattr(), в скобках указывается имя класса и параметр, ответ булевый (True/False)
#python #pythonlearning #class #python_guides