refresh

警告

这部分内容涉及 JAnim 实现原理,可能较为复杂,若没有研究源码的需求,你应酌情阅读

janim.utils.refresh.register(func: T) T

用于在需要时才进行值的重新计算,提升性能

当一个方法 self.func 被修饰后,会记忆 self.func 被调用后的返回值, 并在之后的调用中直接返回该值,而不对 self.func 进行真正的调用; 需要 self.mark_refresh_required(self.func) 才会对 self.func 重新调用以更新返回值

例如,Itemget_family 方法不会每次都进行计算 只有在 addremove 执行后,才会将 get_family 标记为需要更新 使得在下次调用 get_family 才重新计算结果并返回

另见:

  • test.utils.test_refresh.RefreshTest.

class janim.utils.refresh.Refreshable(*args, **kwargs)

基类:object

mark_refresh(func: Callable | str) Self

标记指定的 func 需要进行更新

reset_refresh() Self
class janim.utils.refresh.RefreshData

基类:object