¿Cómo verificar si una cadena es un identificador válido de python? incluyendo la comprobación de palabras clave

¿Alguien sabe si hay algún método Python integrado que verifique si algo es un nombre de variable Python válido, INCLUYENDO un cheque contra palabras clave reservadas? (así, es decir, algo como 'in' o 'for' fallaría ...)

De no ser así, ¿alguien sabe dónde puedo obtener una lista de palabras clave reservadas (es decir, dinámicamente, desde Python, en lugar de copiar y pegar algo de los documentos en línea)? O, ¿tienes otra buena manera de escribir tu propio cheque?

Sorprendentemente, las pruebas envolviendo un setattr en try / except no funcionan, como algo así:

setattr(myObj, 'My Sweet Name!', 23)

... realmente funciona! (... e incluso se puede recuperar con getattr!)

Respuestas a la pregunta(4)

Su respuesta a la pregunta