延迟评估的惰性访问器和其他工具。

lazyutils的Python项目详细描述


lazyutils为代码的延迟计算提供了一些简单的实用程序。



==


lazy decorator用延迟初始化定义了一个属性::

。代码::python
import math
from lazyutils import lazy


class vec:
def初始化(self,x,y):
self.x,self.y=x,y

@lazy
def幅度(self):
print('computing…)
return math.sqrt(self.x**2+self.y**2)

>;>v=vec(3,4)
>;计算…
5.0

v.magnitude
42


lazy属性可以用于简化初始化大量或多个变量的对象的
初始化方法的实现,也可以用于延迟对象中可能不需要的潜在昂贵计算的
优化。生命周期。



delegation
=代码::python
from lazyutils import delegate_to


class arrow:
magnize=delegate_to('vector')


def_u init_u(self,vector,start=vec(0,0)):
self.vector=vector
self.start=start

now,“arrow”实例的“magnitude”属性委托给
`.vector.magnitude``。当一个
想要公开内部对象中的一些选定属性时,委托字段在类组合中很有用。delegate_to()
不加区别地处理属性和方法。


>;>;a=箭头(vec(6,8))
>;>;a.大小
计算…
10.0



我们可以使用alias()和readonly()函数为
属性创建简单的别名::


class myarrow(箭头):
abs-value=readonly('magnitude')
origin=alias('start')

这将公开另外两个属性:“abs-value”和“origin”。第一个是
只是“magnitude”属性的只读视图。第二个公开了对“start”属性的读和写访问。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么程序显示空结果?   java应用程序在测试设备上调试时工作正常,但在发布版apk中没有,它没有获得post。来自firebase的类变量   java Android:从主活动按钮确定在listview中选中哪个复选框   在Spring中添加@OneToOne注释时启动ApplicationContext时发生java错误   用JAVA Android实现矩阵计算的最快方法   SpringJava语义有没有更好的编写方法?   java从hashmap中减去两个值后返回最小差值的键?   Java中的静态初始化顺序:Netty 4.0.7的例外   java如何检查用户输入是否为字符串   循环Java计数单词索引   java如何使用以下代码将视频流传输到Android异步Http服务器?   java如何在jtable的所有行中循环   java如何使用maven将unicode插入mysql   java使用安卓加速远程数据检索   java试图模拟麦克风(javax.sound.sampled)   swing SwingWorker从不归还任何东西?(爪哇)   首次在Android Studio上未加载java LibGDX文件   java如何在多个Mysql服务器上设置限制和偏移?   如何防止从java连接到mongodb时登录控制台?