🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 1.4属性 Kivy介绍了一种新的在一个类中生命属性的方法,以前的方式为: ```Python class MyClass(object): def __init__(self): super(MyClass, self).__init__() self.numeric_var = 1 ``` 而Kivy的方式为: ```Python class MyClass(eventDispatcher): numeric_var = NumericProperty(1) ``` 这些属性实现了[观察者模式](http://en.wikipedia.org/wiki/Observer_pattern),它们对你有以下帮助: * 更容易操纵定义在[Kv 语言]中的部件 * 自动监控任何的变动,并且执行相应的代码 * 检查刷新属性值 * 优化内存管理 为了使用属性,**你必须在一个类里面声明它们**,注意是直接写在类里面,而不是写在任何的类的方法里,它是一个类属性。每一个属性都默认提供了一个on_<propertyname\>事件;当属性值的状态和属性值发生改变时该事件均会被调用。 Kivy提供了下列的属性: * [NumericProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.NumericProperty) * [StringProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.StringProperty) * [ListProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.ListProperty) * [ObjectProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.ObjectProperty) * [BooleanProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.BooleanProperty) * [BoundedNumericProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.BoundedNumericProperty) * [OptionProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.OptionProperty) * [ReferenceListProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.ReferenceListProperty) * [AliasProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.AliasProperty) * [DictProperty](https://kivy.org/docs/api-kivy.properties.html#kivy.properties.DictProperty) 如果想有更深的了解,请查看[属性](https://kivy.org/docs/api-kivy.properties.html) ### 下节预告:1.5 Kv设计语言