Update-Informationen wurden in der TL von pypi_update veröffentlicht, daher habe ich versucht, sie zu verwenden.
vulture
Geier weist auf nicht verwendete Klassen / Methoden / Funktionen / Variablen hin. https://pypi.python.org/pypi/vulture
Sie können es mit pip installieren.
$ pip install vulture
Nach Abschluss der Installation können Sie den Befehl vulture verwenden. Führen Sie es mit diesem Befehl aus.
Ich habe einen Beispielcode erstellt, der alle definierten Objekte verwendet.
py
# -*- coding: utf-8 -*-
USE = 'use'
class Use(object):
use_attr = 'use'
def use(self, value):
self.use_attr = value
return self.use_attr
def use():
Use.use(USE)
if __name__ == '__main__':
use()
Führen Sie Geier mit diesem Beispielcode aus.
$ vulture use.py
$ echo $?
0
Es endete ohne Anzeichen.
Diesmal habe ich im Gegenteil einen Beispielcode erstellt, in dem nicht alle Objekte verwendet werden.
py
# -*- coding: utf-8 -*-
UNUSE = 'unuse'
class UnUse(object):
unuse_attr = 'unuse'
def unuse(self, value):
data = None
def unuse_func():
func_data = None
Führen Sie Geier mit diesem Beispielcode aus.
$ vulture unuse.py
unuse.py:2: Unused variable 'UNUSE'
unuse.py:5: Unused class 'UnUse'
unuse.py:6: Unused variable 'unuse_attr'
unuse.py:8: Unused function 'unuse'
unuse.py:9: Unused variable 'data'
unuse.py:12: Unused function 'unuse_func'
unuse.py:13: Unused variable 'func_data'
$ echo $?
1
Sieben Fälle wurden aufgezeigt und es endete abnormal. Hervorgehoben für globale Variablen (UNUSE), Klassen (UnUse), Klassenvariablen (unuse_attr), Instanzmethoden (UnUse.unuse), Funktionen (unuse_func) und lokale Variablen (Daten und func_data). Es wird nicht darauf hingewiesen, ob das Argument der Funktion oder Methode nicht verwendet wird.
Im folgenden Beispiel wird der Wert auf "self.data" gesetzt, was nicht vollständig unbenutzt ist. Ich habe diesen Wert einfach nicht bekommen.
py
# -*- coding: utf-8 -*-
class Use(object):
def __init__(self):
self.data = 1
def set_(self, value):
self.data = value
Use()
Use.set_(2)
Was passiert, wenn Sie Geier mit diesem Beispielcode ausführen?
$ vulture unuse2.py
unuse2.py:6: Unused attribute 'data'
$ echo $?
1
Ich wurde darauf hingewiesen, wo "self.data = 1" im Konstruktor. Es wird darauf hingewiesen, wenn Sie nur den Wert einstellen.