В Python 2.7 (который устарел с 2015 года и официально достиг конца срока службы в январе 1, 2020), print
раньше был выражением , как и несколько других такие ключевые слова, как break
и continue
. В более новых версиях Python начиная с версии 3.0 print
является функцией , и поэтому вы можете увидеть примеры вашего обратного вызова, в котором используется print
.
получите SyntaxError, потому что вы применяете современную конструкцию (после 2015 v.3) к старой и официально устаревшей версии Python.
Если вы хотите продолжать использовать 2.7, вы можете обойти это создавая оболочку function только для оператора print
:
def my_print (text):
print text
def event_loop (handle_key):
handle_key('hello!')
event_loop(my_print)
, где замена последней строки вашей исходной строкой
event_loop(print)
покажет, что SyntaxError снова. Но было бы лучше обновить.