Conseils pour remplacer et déboguer les fonctions

Lorsque vous écrivez un petit script, vous assemblez et exécutez une chaîne, non?

Quelque chose comme ça (je n'utilise pas shutil parce que c'est un exemple)

os.system('mv %(src)s %(dst)s' % locals())

Un tel mec

os.system('ssh %(user)s@%(host)s -p %(port)s hostname' % locals())

Alors, avez-vous déjà fait cela lorsque vous souhaitez vérifier la chaîne de caractères assemblée? C'est un problème

# os.system('mv %(src)s %(dst)s' % locals())
print 'mv %(src)s %(dst)s' % locals()

Si vous voulez déboguer comme ça, il est plus facile de remplacer ʻos.system`

def out(s):
  print s

os.system = out
os.system('mv %(src)s %(dst)s' % locals())

Maintenant que ʻos.system est en fait print`, lorsque vous l'exécutez, la chaîne de caractères assemblée est sortie en standard et vous pouvez facilement la déboguer.

À propos, la série python2 utilise «def» parce que «print» est une instruction, mais la série python3 est plus facile parce que «print» est une expression.

os.system = print
os.system('mv %(src)s %(dst)s' % locals())

S'il s'agit d'un langage objet de première classe, il sera appliqué, il peut donc être bon de se souvenir

Recommended Posts

Conseils pour remplacer et déboguer les fonctions
6 bibliothèques Python pour un développement et un débogage plus rapides
[Python of Hikari-] Chapitre 06-04 Fonctions (arguments et valeurs de retour 3)
Astuces Python et Numpy
Fonctions et décorateurs d'ordre supérieur
[Hikari-Python] Chapitre 06-01 Fonctions (fonctions intégrées et définitions de fonctions)
Rapport sur le débogage et les tests
[Python of Hikari-] Chapitre 06-03 Fonctions (arguments et valeurs de retour 2)
Fonction anonyme et fonction de carte
Conseils pour coder courts et faciles à lire en Python
[Statistiques pour les programmeurs] Variables de probabilité, distributions de probabilité et fonctions de densité de probabilité
[Hikari-Python] <Supplement> Chapitre 06-05 Fonctions (arguments et valeurs de retour 4)
Diviser re.split et remplacer re.compile
Arguments de mots-clés pour les fonctions Python
Python #function 1 pour les super débutants
[Python + Selenium] Conseils pour le grattage
Fonctions de tri et de comparaison Python 3
Héritage de classe et super fonction
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Introduction et astuces de mlflow.
Conseils et précautions lors de l'analyse des données