Python регулярное выражение для поиска свойств класса
Считываю файлы в папке в которых находятся классы. С классов нужно достать поля. (в классах может быть такой стиль писания полей, в этом сложность.)
class Son(Father):
def __init__(self
, first
, second
, third
):
super().__init__(self
, first
, second
)
Для обычного кода где поля не столбиком а в ряд применил такое
result = re.findall(r'self,.*', x) # x = считаный файл
но вот с столбиками я не знаю как достать значения.
Нужно достать только поля класса наследника.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Не совсем понимаю, что именно вы ищете, но вроде всё ищется довольно тривиальными шаблонами:
import re
x = '''
class Son(Father):
def __init__(self
, first
, second
, third
):
super().__init__(self
, first
, second
)
'''
result = re.findall(r'self\s*,[^)]*', x) # x = считаный файл
result = [re.sub(r'\s+', '', r) for r in result]
print(result)
Вывод:
['self,first,second,third', 'self,first,second']
Здесь я просто ищу символы, идущие до закрывающей скобки. Ну и потом ещё лишние пробелы убираю, их многовато получается.