Значение «this» зависит от «контекста», в котором выполняется функция. Контекстом может быть любой объект или глобальный объект, т. Е. Окно.
Таким образом, семантика «этого» отличается от традиционных языков ООП. И это вызывает проблемы: 1. когда функция передается другой переменной (скорее всего, обратный вызов); и 2. когда замыкание вызывается из метода-члена класса.
В обоих случаях это устанавливается в окно.
Проблема в том, что .putalpha
напрямую меняет изображение и возвращает None
, а не новое изображение. Поэтому, чтобы исправить код, просто замените
background_image = background_image.putalpha(128)
на
background_image.putalpha(128)
, и он должен работать.