<MyRusakov.ru />

Создание игр на Unreal Engine 4

Создание игр на Unreal Engine 4

Данный курс научит Вас созданию игр на Unreal Engine 4. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.

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

Помимо самого курса Вас ждёт ещё 5 бесплатных ценных Бонусов: «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства» и «Создание прототипа RPG с открытым миром».

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Декораторы в Python

Декораторы в Python

Здравствуйте уважаемые читатели! В этой статье мы поговорим с Вами о том, что такое декораторы в Python и зачем они нужны. Декоратор это шаблон программирования который позволяет расширить функциональность объекта не изменяя его свойств. Он используется во многих случаях при разработке. Например тема сайта, используемая по умолчанию может дополняться другими вариантами с помощью декоратора. Также при отладке, с его помощью можно отслеживать выполнение кода.

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


def func1(func):
    
    def infunc():
      print("Start")
      func()
      print("End")
    return infunc

def somef():
    print("Some Func")
    
func1(somef)

# результат можно присвоить переменной

f = func1(somef)

print(f)

f()

Напечатав переменную убедимся что в ней хранится вложенная функция infunc. После вызова новой функции f(), она примет значение вложенной функции infunc. Теперь посмотрим случай когда мы хотим расширить возможности нашей функции. Допустим мы хотим обернуть текст в теги html:


def html_decorator(func):
    
    def infunc():
      print('<h1>')
      func()
      print('</h1>')
    return infunc


def somef():
    print("Some Func")

# создадим переменную  совпадающей с именем функции
somef = html_decorator(somef)

# Текст будет обернут в теги.
somef()

Теперь в переменной somef окажется значение функции infunc. Таким образом мы задекорировали нашу функцию. И в Python подобная конструкция заменяется знаком @ и именем декоратора:


# навешиваем декоратор, который заменяет собой somef = html_decorator(somef)
@decorator
def somef():
    print("Some Func")

Таким образом можно придать дополнительную функциональность любому объекту. Если же мы захотим превратить текст в таблицу и оформить его соответствующим образом, просто создадим еще один декоратор по примеру выше заменив тег h1 на table:

def decorator2(func):
    
    def infunc():
      print('<table>')
      func()
      print('</table>')
    return infunc

# навешиваем декоратор с тегом table поверх h1 
@decorator2
@decorator
def somef():
    print("Some Func")

Вызов функции часто сопровождается передачей в нее аргументов.


def somef(name):
    print("hello", name)

# но вызов функции далее преведет к ошибке так как infunc не принимает аргументы
somef("XX")

# чтобы исправить это дополним декоратор
def decorator2(func):
    
    def infunc(*args, **kwargs):
      print('<table>')
      func(*args, **kwargs)
      print('</table>')
    return infunc

Так как функция somef(name, age) может содержать заранее неизвестное количество аргументов , то вышеуказанный способ описания позволяет декорировать функции с произвольным количеством аргументов.

Таким образом мы рассмотрели способ расширения функциональности объекта в Python, с помощью декоратора.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.