Des informations de mise à jour ont été publiées sur le TL de pypi_update, j'ai donc essayé de l'utiliser.
vulture
vulture signale les classes / méthodes / fonctions / variables inutilisées. https://pypi.python.org/pypi/vulture
Vous pouvez l'installer avec pip.
$ pip install vulture
Une fois l'installation terminée, vous pouvez utiliser la commande vulture. Utilisez cette commande pour l'exécuter.
J'ai créé un exemple de code qui utilise tous les objets définis.
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()
Exécutez vulture sur cet exemple de code.
$ vulture use.py
$ echo $?
0
Il s'est terminé sans aucune indication.
Cette fois, au contraire, j'ai créé un exemple de code dans lequel tous les objets ne sont pas utilisés.
py
# -*- coding: utf-8 -*-
UNUSE = 'unuse'
class UnUse(object):
unuse_attr = 'unuse'
def unuse(self, value):
data = None
def unuse_func():
func_data = None
Exécutez vulture sur cet exemple de code.
$ 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
Sept cas ont été signalés et cela s'est terminé anormalement. Pointé pour les variables globales (UNUSE), les classes (UnUse), les variables de classe (unuse_attr), les méthodes d'instance (UnUse.unuse), les fonctions (unuse_func) et les variables locales (data et func_data). Il n'est pas précisé si l'argument de la fonction ou de la méthode est inutilisé.
Dans l'exemple ci-dessous, la valeur est définie sur «self.data», qui n'est pas complètement inutilisée. Je n'ai tout simplement pas eu cette valeur.
py
# -*- coding: utf-8 -*-
class Use(object):
def __init__(self):
self.data = 1
def set_(self, value):
self.data = value
Use()
Use.set_(2)
Que se passe-t-il si vous exécutez Vulture sur cet exemple de code?
$ vulture unuse2.py
unuse2.py:6: Unused attribute 'data'
$ echo $?
1
On m'a indiqué où self.data = 1
dans le constructeur.
Cela sera signalé si vous définissez simplement la valeur.