Ошибка возникает, потому что в текущей версии кода переменная `screen` не определена. Вместо этого используется неизвестная переменная `self.screen`.
Чтобы исправить ошибку и правильно передать экземпляр `screen` в класс `Ship`, необходимо заменить строку `self.ship = Ship(screen)` на `self.ship = Ship(self.screen)`.
Исправленный код:
```python
import sys
import pygame
from set import Settings
from ship import Ship
class Aliens:
def __init__(self):
pygame.init()
self.settings = Settings()
self.screen = pygame.display.set_mode((self.settings.w, self.settings.h))
pygame.display.set_caption('asdsad')
self.ship = Ship(self.screen)
def run(self):
while True:
for event in pygame.event.get():
print(event)
if event.type == pygame.QUIT:
sys.exit()
self.screen.fill(self.settings.bg_color)
self.ship.blitme()
pygame.display.flip()
if __name__ == '__main__':
ai = Aliens()
ai.run()
```
Теперь экземпляр `self.screen` правильно передается в класс `Ship`, и значение переменной успешно присваивается.