Когда я помещаю pygame.display.get_surface () в качестве параметра по умолчанию в func, он дает мне None, например:
def func(surface = pygame.display.get_surface()):
print(surface)
И я не получаю.
Но если я сделаю это:
def func():
print(pygame.display.get_surface())
Он напечатает мне его детали (например: Surface (800x600x32 SW))
По какой причине это произошло?






def func(surface=pygame.display.get_surface()):
print(surface)
Это вызывает pygame.display.get_surface(), когда функция определенный, а не когда она вызывается.
Когда создается сама функция, вы еще не инициализировали pygame, поэтому pygame.display.get_surface() возвращает None.
Альтернативный вариант, как вы заметили, - переместить вызов get_surface() из определения функции в тело:
def func(surface=None):
if surface is None:
surface = pygame.display.get_surface()
print(surface)