有人解释一下报错原因吗

这里为什么用定义的函数会报错,但是用不用定义的函数能运行
def check_fleet_edges(ai_settings,aliens):
    for alien in aliens.sprites():
        if alien.check_edges():
            change_fleet_direction(ai_settings,alien)    #  在这引用的
            """for alien in aliens.sprites():
                alien.rect.y += ai_settings.fleet_drop_speed
            ai_settings.fleet_direction *= -1"""

            break

# 这是自己定义的函数
def change_fleet_direction(ai_settings,aliens):
    for alien in aliens.sprites():
        alien.rect.y += ai_settings.fleet_drop_speed
    ai_settings.fleet_direction *= -1

用上面的代码会报这个 'Alien' object has no attribute 'sprites',但是不用 change_fleet_direction(ai_settings,alien),直接用注释的那些又能正常运行

你给函数传的是alien,并不是aliens,提示没有sprites很合理。

img


仔细看原文,这里传入的应该是aliens