Как отказаться от параметра обратного вызова? - PullRequest
1 голос
/ 25 февраля 2020

У меня есть диспетчер, который вызывает обратные вызовы с двумя аргументами:

class Foo:
    def register(self, callback):
        self.callback = callback

    def _handle(self):
        self.callback(x, y)

I wi sh, чтобы исключить второй аргумент, и вместо этого отправить только один аргумент:

def _handle(self):
    self.callback(x)

Как я могу отказаться от старого обратного вызова, не нарушая код в течение периода миграции?

Большинство способов отказаться от использования включают игнорирование аргумента и отправку DeprecationWarning. В этом случае это не сработает, так как я должен отправить все параметры в случае регистрации более старого обратного вызова.

Другими способами являются проверка подписи (которая не будет надежной) или создание другой функции register() или new_callback параметр, который выглядит как запах кода.

...