Property属性

使用Property函数为类创建Property属性,Property属性用法和一般属性相同,但是他在获取值和赋值时会调用相应的方法
traits库也提供了Property属性
from traits.api import Property
from traits.api import Property,HasTraits,Float,cached_property

class rectangle(HasTraits):
w = Float(1.0)
h = Float(2.0)
area = Property(depends_on=['w','h']) #当w,h任意一个发生改变时,都会触发属性函数
#当我们读取area的时候,是当前_get_area方法的返回值,当我们设置area值时,会传递个人_set_area方法(不设置,则只是只读的)
@cached_property #返回值将会被缓存,除非w,h发生变化,否则就会一直使用这个缓存值,而不会多次调用_get_area值
def _get_area(self): #会根据属性名直接获得属性对应的方法
print("computing...")
return (self.w*self.h)

测试

>>> r = rectangle()
>>> r.area  #第一次获取值的时候会去调用_get_area方法
computing...  
2.0
>>> r.area  #再去调用会直接去缓存中获取
2.0
>>> r.area
2.0
>>> r.w =   #当我们修改w,或者h时,不会立即调用_get_area方法,会树立一个更新标识符,当我们再次获取area时,不会去缓存中获取,而是再次调用_get_area方法
>>> r.area
computing...
10.0

>>> r.edit_traits()
<traitsui.ui.UI object at 0x000000000CB9A048>
>>> computing...
computing...
computing...
computing...
computing...
computing...

>>> r.area
115.5

当我们在GUI界面中修改w,h值时,系统会设置area的标志为重新计算,发现有对象在监听area值(GUI),
因此他会直接更新值,并通知所有监听对象 (修改一个,所有的对象值都会修改)

科学计算三维可视化---Traits(Property属性)的更多相关文章

  1. 科学计算三维可视化---Traits介绍

    简介 Traits是开源扩展库,Traits本身与科学计算可视化没有直接关联,但他其实TVTK,Mayavi,TraitsUI基础 安装: pip3 install traits--cp36-cp36 ...

  2. 科学计算三维可视化---Traits属性的功能

    Traits属性的功能 Traits库为python的属性增加了类型定义的功能,除此之外他还提供了5个特殊的功能(可以为用户的界面响应提供基本能力):初始化:每个traits属性都有自己的默认值验证: ...

  3. 科学计算三维可视化---Traits(Event和button属性)

    Event和button属性 是两个专门用于处理事件的change属性 Event属性和其他Trait属性不一样 Button属性是由Event属性继承而来的 Event监听 from traits. ...

  4. 科学计算三维可视化---Traits属性的监听

    Traits属性的监听 HasTraits对象所有Traits属性都自动支持监听功能,当每个Traits属性发生变化时,HasTraits对象会通知监听此属性的函数 两种监听模式 静态监听 动态监听 ...

  5. Python科学计算三维可视化(整理完结)

    中国MOOC<Pyhton计算计算三维可视化>总结 课程url:here ,教师:黄天宇,嵩天 下文的图片和问题,答案都是从eclipse和上完课后总结的,转载请声明. Python数据三 ...

  6. 科学计算三维可视化---Mlab基础(数据可视化)

    推文:科学计算三维可视化---TVTK库可视化实例 使用相关函数:科学计算三维可视化---Mlab基础(管线控制函数) 一:mlab.pipeline中标量数据可视化 通过持续实例,来感受mlab对数 ...

  7. 科学计算三维可视化---Mlab基础(管线控制函数)

    科学计算三维可视化---TVTK管线与数据加载(可视化管线和图像管线了解) 科学计算三维可视化---Mayavi入门(Mayavi管线) Mlab管线控制函数的调用 Sources:数据源 Filte ...

  8. 科学计算三维可视化---Mlab基础(鼠标选取交互操作)

    一:鼠标选取介绍 二:选取红色小球分析 相关方法:科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数) 1.小球场景初始化建立 import numpy as np from maya ...

  9. 科学计算三维可视化---TraitsUI的介绍

    TraitsUI的介绍 Python中存在Tkinter,wxPython,pyQt4等GUI图像界面编写库,这三类库要求程序员掌握众多的GUI API函数 对于科学计算的应用来说,我们希望可以快速的 ...

随机推荐

  1. 20162325 金立清 S2 W9 C18

    20162325 2017-2018-2 <程序设计与数据结构>第9周学习总结 教材学习内容概要 堆是一棵完全二叉树,其中每个元素大于等于其所有子结点的值. 向堆中添加一个元素的方法是,首 ...

  2. java的小学生四则运算

    import java.awt.*; import java.awt.event.*; import java.io.FileNotFoundException; import java.io.IOE ...

  3. 【Coursera】经验风险最小化

    一.经验风险最小化 1.有限假设类情形 对于Chernoff bound 不等式,最直观的解释就是利用高斯分布的图象.而且这个结论和中心极限定律没有关系,当m为任意值时Chernoff bound均成 ...

  4. Beta阶段团队项目开发篇章1

    例会时间:2016.12.1 例会照片: 个人工作: 任务分配: 组员 任务内容 李文涛 编写并发布调查问卷 姬索肇 审核并传播调查问卷 韩慧敏 审核并传播调查问卷 任务截止时间 2016.12.4 ...

  5. asp.net简述WP开发模式

    详情请参考菜鸟教程:http://www.runoob.com/aspnet/aspnet-tutorial.html 1.ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器 ...

  6. [BUAA_SE_2017]提问回顾

    提问回顾 学期初疑问回答 学期初疑问博客 教材中说,PM在衡量需求时需要方方面面的能力与研究.可是,当下许多互联网IT公司只承担外包业务,即客户给什么需求就实现什么需求,甚至可能不要求其它先进的功能. ...

  7. 补发9.27“天天向上”团队Scrum站立会议

    组长:王森 组员:张金生 张政 栾骄阳 时间:2016.09.27 地点:612寝 组员 已完成 未完成 王森 分析设计亮点 原型搭建 张金生 设计UI框架 美化完善 张政 学习C#语言初步应用 熟练 ...

  8. AlarmManager的使用

    原文地址:http://www.cnblogs.com/kross/p/3643708.html AlarmManager可以设定一个规定的时间,或者重复从某一个时间开始,等间隔的做一个操作.可以用来 ...

  9. logback错误日志发送邮件

    logback 一.介绍 logback是由log4j的作者开发的一个开源日志组件,用以替代log4j. logback由3个部分组成: ♦ logback-core (基础模块) ♦ logback ...

  10. MySQL中varchar最大长度是多少

    一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无 ...