我刚开始学习kivy,我对ObjectProperty类的用法非常困惑,以及它如何将None作为参数.有人可以解释一下吗?我在kivy教程中找到了它:

class PongGame(Widget):

ball = ObjectProperty(None)

def update(self, dt):

self.ball.move()

# bounce off top and bottom

if (self.ball.y < 0) or (self.ball.top > self.height):

self.ball.velocity_y *= -1

# bounce off left and right

if (self.ball.x < 0) or (self.ball.right > self.width):

self.ball.velocity_x *= -1

最佳答案 Kivy属性是一个类似于Python自己的属性的便利类,但它也提供类型检查,验证和事件. ObjectProperty是Property类的专用子类,因此它具有与它相同的初始化参数:

By default, a Property always takes a default value[.] The default

value must be a value that agrees with the Property type. For example,

you can’t set a list to a StringProperty, because the StringProperty

will check the default value.

None is a special case: you can set the default value of a Property to

None, but you can’t set None to a property afterward. If you really

want to do that, you must declare the Property with allownone=True[.]

在你的代码中,PongGame有一个ball属性,最初设置为None,稍后会被赋予一个ball对象.这是在kv文件中定义的:

:

ball: pong_ball

PongBall:

id: pong_ball

center: self.parent.center

由于没有对象传递给初始化器,因此可以将任何对象分配给该属性.你可以通过用虚拟值初始化它来限制它只保持球对象:

ball = ObjectProperty(PongBall())

python的objectproperty,python – ObjectProperty类的用法相关推荐

  1. python 包用法_Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...

  2. python accessiblechildren用法_python类继承用法实例分析

    本文实例讲述了python类继承用法.分享给大家供大家参考.具体如下: help('object') # test class Class1(object): """ C ...

  3. python的编程模式-Python设计模式之状态模式原理与用法详解

    本文实例讲述了Python设计模式之状态模式原理与用法.分享给大家供大家参考,具体如下: 状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 ...

  4. Python爬虫进阶五之多线程的用法

    前言 我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理. 首先声明一点! 多线程和多进程是不一样的!一个是 thread ...

  5. python classmethod_对Python中的@classmethod用法详解

    在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法. 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的. 不过还是好奇去查了一下. 大致可以 ...

  6. python中content的用法_学python吗,教你5个python现学现用的有趣用法

    在我们使用python的过程中也会遇到一些有意思的用法,这里找到了一些总结有趣的 话不多说,接着看下去吧!!!!python高薪就业(视频.学习路线.免费获取)​shimo.im for-else用法 ...

  7. Python Tree库绘制多叉树的用法介绍

    Python Tree库绘制多叉树的用法介绍 Tree 库是一个 Python 的第三方库.这个库主要用于生成树和绘制树的图形. 一.安装Tree pip install Tree 使用 Tree 库 ...

  8. Python treelib库创建多叉树的用法介绍

    Python treelib库创建多叉树的用法介绍 treelib 库是一个 Python 的第三方库.这个库实现了一些多叉树相关的常用方法. 一.安装treelib pip install tree ...

  9. python 枚举类型_Python枚举类

    本篇主要介绍Python中枚举类的用法,更多内容请参考:Python学习指南 当我们需要定义常量时,一个办法就是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 · ...

  10. python中iter函数_Python iter()函数用法详解

    Python iter()函数用法实例分析 本文实例讲述了Python iter()函数用法.分享给大家供大家参考,具体如下: python中的迭代器用起来非常灵巧,不仅可以迭代序列,也可以迭代表现出 ...

最新文章

  1. Centos 7环境下源码安装PostgreSQL数据库
  2. 微信为什么不进入鸿蒙生态,马化腾为何迟迟不将微信, 加入任正非的华为鸿蒙生态系统中呢?...
  3. NS2相关学习——在ns中模拟无线场景
  4. canvas--绘制路径
  5. UVA11039 Building designing【排序】
  6. opencv 图像平滑、图像模糊函数的使用
  7. 论文评析-Incremental Boosting Convolutional Neural Network for Facial Action Unit Recognition,NIPS, 2016
  8. linux导入通达oa数据库,将通达OA迁移到linux平台
  9. 不错的网络协议栈测试工具 — Packetdrill
  10. linux svn服务器同步,Linux服务器实现SVN与WEB同步解决方案
  11. sata 双硬盘 电源线_电脑双硬盘安装图解教程
  12. 【Python实现】运输问题的表上作业法(二):利用位势法判断当前解的最优性
  13. 万能地图下载器如何下载屏幕之外的谷歌卫星地图
  14. 黑暗森林:V神和Paradigm联创都在玩的三体游戏(dark forest)
  15. 手机射频中的常见术语
  16. python与spider的区别_python – Scraw spider与Scraped items之间的区别
  17. unhandled exception in XXX:0xC0000005:access violation问题
  18. FireFox必备插件(一)
  19. js随机生成验证码(数字+字母)
  20. 金蝶K3总账期初数据录入案例教程

热门文章

  1. python 字典排序成绩_原来python中dict()的高级用法可以这样实现!真是让我长了见识...
  2. kaggle房价预测特征意思_未来销量预测——Kaggle基础方案(三):特征工程及线下验证划分...
  3. ajax怎么添加表单,使用Ajax动态地将表单添加到Django表单集
  4. java解析字符串_java 拼接字符和解析字符串
  5. 【转】余弦相似度及基于python的三种代码实现、与欧氏距离的区别
  6. Win7 网络连接正常 无法上网
  7. CentOS 7.4 安装Nginx
  8. WAN killer
  9. django1.2中将ManyToManyField呈现为checkbox
  10. Centos yum安装snmp