Как передать аргументы self-функции python?

Функция def func(self, event): вызывается в коде строкой keyboard.hook(self.func)

Помимо self и event, в функцию нужно предать еще один аргумент в виде числа.

То есть что-то такое:

#функция

def func(self, event, my_varible):
     if my_varible == 1:
          #действие 1
     else:
          #действие 2

#вызов

keyboard.hook(self.func(1)) #как передать значение?

Как это можно сделать?


Ответы (1 шт):

Автор решения: CrazyElf
keyboard.hook(self.func(1))
                       ^^^ - вызов функции, вместо передачи её аргументом

Если вы указываете скобки с аргументом, вы вызываете функцию в этот самый момент уже, а не передаёте ссылку на функцию, что требуется в этом случае, так точно не пойдёт. Но можно использовать, например, partial. Примерно так:

from functools import partial

keyboard.hook(partial(self.func, my_variable=1))
→ Ссылка