Ключевое слово args

Ключевое слово args используется при обращении к функциям обратно вызова для передачи им аргументов. Это относится к аргументам, переданным обратному вызову. Немножко усложним пример для app:

from kivy. app import App
from kivy.lang import Builder
KV = '''
BoxLayout:
    orientation: 'vertical'
    Button:
        text: "Кнопка1"
        on_press: app.press_button (*args)
    Button:
        text: "Кнопка2"
        on_press: app.press_button (*args)
    TextInput:
        id:ti1
        text: app.name
        on_focus: self.insert_text ("Фокус" if args[1] else "Нет")
'''

class MainApp (App):
    def build (self):
        return Builder.load_string(KV)
    def press_button (self, instance):
        print (self)
        self.root.ids.ti1.text="Вы нажали на кнопку: " + instance.text
        
if __name__ == '__main__':
    MainApp().run() 

Здесь у нас вместо метки используется текстовое поле (TextInput). Cобытие нажатия кнопки (on_press), будет обработано функцией press_button (*args). В скобках указаны аргументы, которые будут переданы в данную функцию (звездочка * говорит о том, что будут переданы все аргументы от текущего виджета или по сути сам виджет).

У виджета TextInput определено событие получения фокуса (on_focus). Для обработки этого события будет использоваться функция insert_text (вставить текст): self.insert_text («Фокус» if args[1] else «Нет»). Какой текст будет вставлен, зависит от значения args[1]. Если тестовое поле получит фокус, то в поле ввода будет вставлен текст «Фокус», если поле для ввода текста потеряет фокус, то будет вставлено слово «Нет».

После запуска данного модуля получим следующий результат: