外星人大战中,for bullet in bullets.sprites()中的sprites有什么用

img

《python-从入门到实践》的12.8中,绘制所有的子弹。原文见上图,代码见下方
def update_screen(ai_settings, screen, ship, bullets):
                --snip--
  # 在飞船和外星人后面重绘所有子弹
    for bullet in bullets.sprites():
    bullet.draw_bullet()
该代码中,我尝试去掉for bullet in bullets.sprites():末尾的.sprites(),仅以for bullet in bullets运行程序。结果该程序照常运行
我的理解是bullets本身是一个编组,for语句可以遍历其中的所有的精灵,所以不需要再使用方法.sprites()重新返回列表。
请问,我这样的理解对吗?

bullets是一个精灵族pygame.sprite.Group(),用sprites()可以返回这个组中的所有精灵,是一个列表,for用来遍历这个列表。