|
glutficx
| |
|
Как бы вы спроектировали систему, которая автоматически определяет и исправляет неэффективные участки кода в большом проекте, не нарушая его поведение?
import ast
class InefficiencyFinder(ast.NodeVisitor): def __init__(self): self.warnings = []
def visit_For(self, node): if any(isinstance(child, ast.Compare) and any(isinstance(op, ast.In) for op in child.ops) for child in ast.walk(node)): self.warnings.append(( node.lineno, "Проверка 'in list' внутри цикла может быть неэффективной. " "Рассмотрите использование set для ускорения поиска." )) self.generic_visit(node)
def analyze_code(source_code): tree = ast.parse(source_code) finder = InefficiencyFinder() finder.visit(tree) return finder.warnings
думала как-то так написать, но боюсь что слишком громоздко.
|
|
|
381241
|