Ключевое слово self ссылается на текущий экземпляр виджета. С его помощью можно, например, получить значения свойств текущего виджета. Например,
Демонстрация использования ключевого слова self
from kivy. app import App
from kivy.lang import Builder
KV = '''
Button
text: "Состояние кнопки – %s"% self.state
'''
class MainApp (App):
def build (self):
return Builder.load_string(KV)
if __name__ == '__main__':
MainApp().run()
Здесь свойству кнопки text, через префикс self присвоено значение ее же свойства – состояние кнопки (self.state). Получается, что кнопка сделала запрос сама к себе. После запуска приложения получим следующий результат:
Или вот пример, где создаются три кнопки, каждая по щелчку меняет текст на кнопки, считая количество кликов по ней:
Демонстрация использования ключевого слова self
from kivy. app import App
from kivy.lang import Builder
KV = '''
<MyButton@Button>:
pos_hint: {'center_x':.5, 'center_y':.6}
font_size: '25sp'
markup: True
on_press: self.text=str(int(self.text)+1)
BoxLayout:
orientation: "vertical"
MyButton:
text: "0"
MyButton:
text: "0"
MyButton:
text: "0"
'''
class MainApp (App):
def build (self):
return Builder.load_string(KV)
if __name__ == '__main__':
MainApp().run()