Перезапись метода из другого модуля - PullRequest
2 голосов
/ 25 октября 2019

Я работаю с jira-python и хочу перезаписать существующий метод Issue.update(). Однако мой код никогда не вызывает модификацию.

from jira import JIRA
from jira.resources import Issue

class Issue(Issue):
    def update(self):
        print("overwritten")
        super(Issue, self).update() # I also tried super().update()

jira = JIRA("...")  # holds a reference to the JIRA instance
issues = jira.search_issues("")  # holds a list of JIRA Issues

for issue in issues:
    // I would expect this call to print "overwritten"
    issue.update()

1 Ответ

0 голосов
/ 25 октября 2019

Вы можете обезопасить метод с помощью обёртки следующим образом:

from jira.resources import Issue

def my_update(self):
    print('overwritten')
    original_update(self)

original_update = Issue.update
Issue.update = my_update
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...