Я динамически создаю классы python, и я знаю, что не все символы действительны в этом контексте.
Есть ли метод где-то в библиотеке классов, который я могу использовать для дезинфекции случайной текстовой строки, чтобы я мог использовать ее как имя класса? Либо это, либо список допустимых символов будет хорошей помощью.
Дополнение о конфликтах с именами идентификаторов:. Как @Ignacio указал в ответе ниже, любой символ, который действителен как идентификатор является допустимым символом в имени класса. И вы даже можете без проблем использовать зарезервированное слово как имя класса. Но есть улов. Если вы используете зарезервированное слово, вы не сможете сделать класс доступным, как другие (нединамически созданные) классы (например, выполнив globals()[my_class.__name__] = my_class
). В этом случае зарезервированное слово всегда будет иметь приоритет.