在类中声明属性

在类中声明属性

这里我们想要强调一个重要的传统Python编码和kivy之间的不同点,以及这个改变的用途。

【做好准备】

我们要记得在python中声明属性的传统形式。通常,如果我们想要在Python中声明一个属性,我们会按照下面的方式来做。

class MyClass(object):

    def __init__(self):

        super(MyClass,self).__init__()

        self._numeric_var = 1

@property

    def numeric_var(self):

        return self._numeric_var

我们声明了一个数字1,鉴于此,如果我们在python的编译器中使用MyClass().numeric_var,那么我们将得到返回值1

【如何做】

现在,在kivy中声明这个属性,我们遵循这些步骤:

1.导入kivy和它的属性

2.定义这个类

3.调用kivy的属性,在这个实例中,使用数字1

       import kivy

       from kivy.event import EventDispatcher

       from kivy.properties import *

       class MyClass(EventDispatcher):

           numeric_var = NumericProperty(1.0)

【怎样运行的】

这个后面的理念就是您从kivy的属性继承了声明,从而减少了代码的行数。

为了使用他们,你不得不在一个类的层面来声明。也就是直接在类里面,而不是在任何类的方法中。A

属性是一个类的属性,这是一个会自动建立实例的属性。每一个属性,默认的,会提供一个on_<propertyname>事件,无论何时这个属性的状态或者数值被改变,它都会被调用。还有一些别的要指出的的是NumericProperty 接受所有Python的数字值:ints, floats, longs

通常,在创建一个类的实例的时候,kivy属性能被轻松的重写,只要使用一个关键词变量,比如ClassName(property=newvalue).

【还有更多】

他们帮助你:

轻松的操控在kv语言中定义的小部件

自动的监测任何改变

检查和验证数值

优化内存管理

Kviy提供如下更多的属性:

f NumericProperty 数字属性

f StringProperty  文本属性

f ListProperty     列表属性

f ObjectProperty 控件属性

f BooleanProperty 布尔属性

f BoundedNumericProperty  数字连接属性

f OptionProperty  选择属性

f ReferenceListProperty  参考清单属性

f AliasProperty    别名属性

f DictProperty    辞典属性

【还看看】

这些属性实际上执行了观察者模式。如果您想要了解到更多的关于模式方面的只是,您可以在线发现更多的信息http://www.oodesign.com/observer- pattern.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值