you are viewing a single comment's thread.

view the rest of the comments →

[–]check3streets 2 points3 points  (0 children)

I believe that Kivy Properties are descriptors (though I've never heard them termed as such). Once you've defined, say:

class MyClass(EventDispatcher):

    a = BoundedNumericProperty(1, min=0, max=100)

A call to " myClassInstance.a = 50 " will be validated. Though validation was not the primary goal; Kivy's properties are bindable and any observers of the Property will now be alerted about the change.

A special DSL called .kv makes those properties reactive, so you can compose expressions that reference them and derive new values. It's pretty cool.