, python. ids ( , , , dict x, "apple", x.apple).
, , .kv:
<ExampleWidget>:
CcaSwitch:
id: out0_bit3
state: 'ON'
.py:
w = ExampleWidget()
print(w.ids.out0_bit3.state)
w.ids.out0_bit3 CcaSwitch.
, id - . , , CcaSwitch (.. ):
class CcaSwitch(Widget):
name = ''
def __init__(self, *args, **kwargs):
super(CcaSwitch, self).__init__(**kwargs)
Clock.schedule_once(self.load_name)
Clock.schedule_interval(self.refresh, 5)
def load_name(self, *l):
for id_str, widget in self.parent.ids.iteritems():
if widget.__self__ is self:
self.name = id_str
return
def refresh(self, dt):
self.comm.publish(get_bool_status(self.name), self.routing_key)
, id id. self.load_name init, .. .
, , , , , , init set self.name = str (self).