Comment vérifier si une chaîne est un python valide d'identification? y compris le mot-clé case?

Personne ne sait si il n'y a aucune python méthode qui permet de vérifier si quelque chose est un python nom de la variable, y COMPRIS les contre-vérifier les mots clés réservés? (donc, c'est à dire, quelque chose comme "dans" ou "pour" serait en panne...)

À défaut, quelqu'un sait où je peux obtenir une liste des mots réservés (c'est à dire, dyanamically, à partir de python, plutôt que de le copier-coller quelque chose à partir des documents en ligne)? Ou, ont un autre bon moyen de l'écriture de votre propre contrôle?

Étonnamment, les essais en l'enveloppant d'un setattr en try/except ne fonctionne pas, que quelque chose comme ceci:

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

...fonctionne réellement! (...et peut même être récupéré avec getattr!)

  • C'est parce que setattr et getattr travail juste à l'objet du __dict__.