cmpt_lazy

class janim.utils.cmpt_lazy.Expired

基类:object

janim.utils.cmpt_lazy.cmpt_lazy_method(func: T, *, recurse_up: bool = False, recurse_down: bool = False) → T
janim.utils.cmpt_lazy.cmpt_lazy_method(func: None = None, *, recurse_up: bool = False, recurse_down: bool = False) → Callable[[T], T]

用于在需要时才重新计算调用组件方法得到的值,提升性能

在需要重新计算的场景下,会通过 self.bind.reset_computed_for 重置, 之后对 func 的调用才会重新计算返回值

注:如果组件没有绑定到物件,不提供缓存

class janim.utils.cmpt_lazy.CmptSignal(func: Callable[Concatenate[T, P], R])

基类:Generic[T, P, R]

self_refresh(func: Fn, *, key: str = '') → Fn
self_refresh(func: None = None, *, key: str = '') → Callable[[Fn], Fn]

被修饰的方法会在 Signal 触发时,标记需要重新计算

connect(sender: Component, func: Callable, *, key: str = '') → None

使 func 会在 Signal 触发时调用

emit(sender: Component, *args, key: str = '', **kwargs)