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']

Здесь я просто ищу символы, идущие до закрывающей скобки. Ну и потом ещё лишние пробелы убираю, их многовато получается.

→ Ссылка