2012-10-21 26 views
1

我試圖找到python文件中一個類內的代碼行數。我使用len(inspect.getsourcelines(b)[0])來返回每個類的代碼行數該文件,但它的問題計數評論和doc字符串除了代碼行..是否有任何方法來放棄註釋和doc字符串?計算python文件中每個類的代碼行數?

import inspect 
import foo 
for a,b in inspect.getmembers(foo): 

    if inspect.isclass(b): 
    print a 

    print len(inspect.getsourcelines(b)[0]) 
+0

你可以通過'__doc__'訪問每個類和函數的docstring,並自己計算docstring的行數,但是我不知道如何通過註釋來實現。 –

+0

最好在代碼行數中加入註釋。 – wim

回答

1

您可能只需要自己從getsourcelines結果解析出意見。如果忽略多行註釋,這只是意味着檢查第一個非空白字符是否爲#。對於使用三重引號的多行註釋,您可以在跟蹤是否位於註釋塊中的同時做類似的事情。

+0

我試圖這樣做,但我找不到任何可以工作的方式......你有什麼想法怎麼做? – tkyass

+0

忽略多行註釋,'len([line for line in inspect.getsourcelines(foo)[0] if line.strip()。startswith('#')])其中foo是您正在檢查的對象。 –

+0

如果這是你嘗試過的東西,那麼發佈你嘗試過的並不起作用是件好事。 –

相關問題