1

ここで説明されていない理由により、コード行は何に対しても悪い測定値です。しかし、Pythonソースコードファイル内のステートメントを数えるためのきちんとした方法はありますか?

4

4 に答える 4

3

pylintは、出力レポートで直接次の情報を提供します。

  pylint main.py 

  ...

  Report
  ======
  145 statements analysed.
于 2012-05-04T22:34:26.173 に答える
1

コードの物理的な行を数えるために(コードの局所的な行ではなく)、SLOCCountが妥当な数を与えることを発見しました。

于 2012-05-04T19:52:08.307 に答える
1

astPythonコードから構文ツリーを解析および構築するモジュールを使用します。そのツリーとノードに基づいて、カスタマイズされたカウントアルゴリズムを適用できるようになります。

于 2012-05-04T22:10:32.570 に答える
0

これは古い投稿ですが。これは、PyLintと同じ方法でPythonソースファイル内のステートメントをカウントするコードのスニペットです。

from astroid import MANAGER
# Tested with astroid 2.3.0.dev0

class ASTWalker:
    """
    Class to walk over the Astroid nodes
    """
    def __init__(self):
        self.nbstatements = 0

    def walk(self, astroid_node):
        """
        Recurse in the astroid node children and count the statements.
        """
        if astroid_node.is_statement:
            self.nbstatements += 1

        # recurse on children
        for child in astroid_node.get_children():
            self.walk(child)

walker = ASTWalker()
ast_node = MANAGER.ast_from_file("/my/file/name", source=True)
walker.walk(ast_node)

print(walker.nbstatements)
于 2019-09-14T22:25:36.237 に答える