Como verificar se uma string é um identificador de python válido? incluindo verificação de palavras-chave?

Alguém sabe se existe algum método python embutido que irá verificar se algo é um nome de variável válido do python, INCLUINDO uma verificação em relação a palavras-chave reservadas? (por exemplo, algo como 'in' ou 'for' falharia ...)

Falhando nisso, alguém sabe de onde eu posso obter uma lista de palavras-chave reservadas (ou seja, dinamicamente, de dentro de python, ao contrário de copiar e colar algo dos documentos on-line)? Ou tem outra boa maneira de escrever seu próprio cheque?

Surpreendentemente, testar envolvendo um setattr em try / except não funciona, algo assim:

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

... realmente funciona! (... e pode até ser recuperado com getattr!)

questionAnswers(4)

yourAnswerToTheQuestion