Мои работы относятся к инструментарию фрагментов кода в коде python. Поэтому в моей работе я бы написал скрипт в python, чтобы взять другой файл python в качестве ввода и вставить любой необходимый код в нужное место с моим скриптом.Как различать «строку» и «фактический код» в python?
Следующий код представляет собой пример кода в файл, который я бы инструментирование:
A.py #normal un-instrumented code
statements
....
....
def move(self,a):
statements
......
print "My function is defined"
......
statements
......
Мой сценарий, что на самом деле делает это, чтобы проверить каждый строк в A.py и если есть «DEF» затем фрагмент коды инструментальный на верхней части коды функции четкости
в следующем примере, как окончательные из пут должны быть:
A.py #instrumented code
statements
....
....
@decorator #<------ inserted code
def move(self,a):
statements
......
print "My function is defined"
......
statements
......
Но я привел с различным вывод. Следующий код является конечным результатом, который я получаю:
A.py #instrumented код
statements
....
....
@decorator #<------ inserted code
def move(self,a):
statements
......
@decorator #<------ inserted code [this should not occur]
print "My function is defined"
......
statements
......
Я понимаю, что в инструментованной коде признает «DEF» в слове «определенное» и т.д. он устанавливает над ним код.
В реальности инструментальный код имеет много этих проблем, я не смог правильно измерить данный файл python. Есть ли другой способ отличить фактический «def» от строки?
Спасибо
Как вы находите 'def' в приборе? Если вы используете регулярное выражение, попробуйте 'r '\ bdef \ b''. Знак '\ b' обозначает границу слова. – cdarke
Будет ли работать, даже если есть такая заявка, как этот отпечаток «Это def» – Kaushik
no. Чтобы иметь дело с текстом, встроенным в кавычки, вам понадобятся негативные взгляды. – cdarke