#python
#питон
Вопрос:
Я недавно начал изучать Pygame (модуль Python). Мой проект Pygame сейчас становится довольно продолжительным — настолько, что в нем трудно ориентироваться. В предыдущих проектах на python я мог просто хранить большинство функций в отдельных файлах python, которые затем импортирует основной файл.
Например, в главном файле:
pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) import second_file second_file.run()
И во втором файле:
def run(): screen.fill([0, 255, 255])
Я хочу сохранить функцию во втором файле, но эта функция должна иметь возможность взаимодействовать с тем же окном Pygame, что и основной файл. Когда он пытается сделать это в настоящее время, он возвращает сообщение об ошибке, сообщающее мне, что имя экрана основного файла не определено.
Любая помощь в том, как я мог бы обойти эту проблему, была бы очень признательна!
Комментарии:
1. Пример не отражает проблему.
screen
В этом примере такого нет. В любом случае, вам нужно передатьscreen
функцию. например:def run(screen):
иsecond_file.run(screen)
2. Добро пожаловать в Stack Overflow. Как бы вы решили эту проблему, если бы функция находилась в одном файле, а не импортировалась?
3. Пусть функции в другом файле python принимают аргументы. Затем, когда вы вызываете их, передайте значения, которые вы хотите, в качестве аргументов.
Ответ №1:
Есть несколько способов сделать это. Вероятно, лучшим способом сделать это было бы передать экран в качестве параметра функции следующим образом: second_file:
def run(screen): screen.fill((0, 255, 255))
И в основном:
pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) import second_file second_file.run(screen)
Или, в качестве альтернативы, вы можете сделать экран глобальным и импортировать его из основного файла. Но я не рекомендую этот метод. И если вы выберете этот метод, следите за циклическим импортом (основной импорт из second_file и импорт второго файла из main).