error de sintaxis en una declaración no local en Python

Me gustaría probar el ejemplo del uso de la declaración no local especificada en la respuesta enesta pregunta:

def outer():
   x = 1
   def inner():
       nonlocal x
       x = 2
       print("inner:", x)
   inner()
   print("outer:", x)

pero cuando intento cargar este código, siempre aparece un error de sintaxis:

Traceback (most recent call last):


File "<stdin>", line 1, in <module>
  File "t.py", line 4
    nonlocal x
             ^
SyntaxError: invalid syntax

¿Alguien sabe qué estoy haciendo mal aquí? (Recibo el error de sintaxis para cada ejemplo que uso, que contienenonlocal).