group¶
- class janim.items.group.NamedGroupMixin(*items: T, named: dict[str, T], **kwargs)¶
基类:
Group,Generic方便用于继承的基础类,例如被
Axes继承另见
NamedGroup- add(*items: T, prepend=False, **named_items: T) Self¶
向该物件添加子物件,并且可以通过具名参数设定具名子物件
- 参数:
items -- 要添加的子物件
named_items -- 要添加的具名子物件
prepend -- 默认为
False,如果为True,那么插入到子物件列表的开头
- insert(index: int, *items: T, **named_items: T) Self¶
在指定索引位置插入子物件,并且可以通过具名参数设定具名子物件
- 参数:
index -- 插入位置的索引
items -- 要插入的子物件
named_items -- 要插入的具名子物件
- remove(*items_or_names: T | str) Self¶
从该物件移除子物件
- 参数:
items_or_names -- 要移除的子物件或具名子物件的名称
- shuffle() Self¶
随机打乱子物件的顺序
备注
该方法使用
random.shuffle()进行随机打乱如果需要可重复的随机结果,请在调用此方法前使用
random.seed()设置随机数种子
- by_name(key: str) T¶
根据名称获取子物件
- resolve() dict[str, T]¶
将具名子物件的内部索引关系整体解析为到物件的映射
- 返回:
名称到子物件的映射字典
- children_with_name() list[tuple[T, str | None]]¶
返回的列表中与子物件列表相似,但是每个元素是一个包含
(单个子物件, 其对应的名称)的元组,如果不是具名子物件则名称为None
- store(**kwargs)¶
- restore(other: NamedGroupMixin) Self¶
- get_named_indices() dict[str, int]¶
- copy(*, root_only: bool = False)¶
复制物件
- class janim.items.group.NamedGroup(*items: T, **named_items: T)¶
基类:
NamedGroupMixin,Generic具名物件组,可以使用类似
group['name']的形式来获取其中的具名物件- 参数:
items -- 初始物件
named_items -- 初始具名物件
也可以使用
add()或insert()方法,传入具名参数来新增具名子物件示例:
group = NamedGroup( text=Text('lorem'), shape=Circle() ) group.points.arrange(DOWN, aligned_edge=LEFT) self.play( group['text'].anim.color.set(GREEN), group['shape'].anim.color.set(YELLOW), lag_ratio=0.5 ) def updater(group: NamedGroup, p: UpdaterParams) -> None: group.points.rotate(TAU * p.alpha) group['text'].color.mix(BLUE, p.alpha) self.play( GroupUpdater(group, updater) )
备注
无法像
Group那样使用初始化参数group = Group(..., color=RED)
为了解决这一问题,你可以写为
group = NamedGroup(...) group.set(color=RED)
备注
如果你想要将
NamedGroup作为父类并继承,使用NamedGroupMixin会是更好的选择因为它不会将所有
**kwargs都吃掉,而是使用显式的named参数来指定具名子物件字典