Есть ли способ заменить функциональные части декоратором? - PullRequest
0 голосов
/ 11 ноября 2019

Декораторы для меня совсем новые. В примерах, которые я обнаружил в Интернете, люди используют их для добавления дополнительных функций к определенным ранее функциям. Интересно, есть ли способ изменить части функции, передаваемой декоратору? Если нет, то есть ли какой-либо другой способ сделать это (без переписывания или добавления новых параметров в существующую функцию)?

Допустим, я пишу простой мод для своей игры и хотел бы использовать его в течение некоторого периода времени. затем оставьте эту функцию и вернитесь к старому определению функции create. Вот почему я не хочу его изменять. Конечно, проще всего было бы добавить несколько аргументов в этих местах, но я пытаюсь узнать что-то новое, более элегантное. Можете ли вы помочь мне с соответствующим решением?

Я попытаюсь продемонстрировать на примере, что я пытаюсь получить:

    def create(self, vertices):
        glBegin(GL_LINES) #glBegin(GL_QUADS)
        for element in self.operation():
            for vertex in self.element.get_edges(): #for vertex in self.element.get_surfaces()
                glColor3fv(self.color)  #glColor3fv((0.5, 0, 0))
                glVertex3fv(vertices[vertex])
        glEnd()

В комментариях я написал вещи, которые я хотел бы временно заменить.

...