Строки кода внутри класса в Python?

Я пытаюсь найти количество строк кода в классе или функции, которые хранятся в файле Python. Мой код выглядит следующим образом... я хочу найти количество строк кода в классе, а не во всем файле.... есть ли хороший способ сделать это??

import inspect
import foo    
for a,b in inspect.getmembers(foo):
    if inspect.isclass(b):
        print a  # find a class within the file

2 ответа

Решение
len(inspect.getsourcelines(a)[0])

Из документации inspect.getsourcelines:

Возвращает список исходных строк и номер начальной строки для объекта.

Вот почему вам нужен индекс 0

Вы все еще можете использовать inspect,

In [6]: from test import A

In [7]: import inspect

In [8]: inspect.getsourcelines(A)
Out[8]: 
(['class A(object):\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n'],
 1)

len(inspect.getsourcelines(A)[0]) вернусь ты хочешь.

Другие вопросы по тегам