Убедитесь, что строка содержит действительный код Python - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь проверить, содержит ли какая-либо строка действительный код Python, не учитывая любой контекст. Использование ast.parse и codeop.compile_command не будет работать во всех случаях, потому что:

  • ast.parse(x) выдаст SyntaxError, если оно обнаруживает неполный код (например, if True:)
  • codeop.compile_command(x) не охватывает все случаи неполного кода; он работает в случаях, когда x недопустим как есть , но является префиксом действительного кода Python (например, он работает для if True:, но не для else:)

Есть ли обходной путь для достижения sh этого?

1 Ответ

0 голосов
/ 03 февраля 2020

Как отмечается в комментариях, это невозможно сделать, потому что некоторая отдельная строка, которая кажется недействительной, может быть частью более крупной строки, которая сама по себе является действительным кодом Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...