[PYTHON] Depuis sys importez stderr ou importez sys → sys.stderr

Pour décrire le flux de sortie d'erreur standard dans le code Python

from sys import stderr 

stderr

Et comment écrire

import sys

sys.stderr

Il existe deux manières d'écrire. Pas seulement stderr, mais toutes les importations. Eh bien, comment les utiliser correctement. Outre le fait que le premier a des performances légèrement meilleures lorsqu'il est utilisé dans une boucle, il existe une différence sémantique.

Ce qui se passe, c'est que lorsque j'essaie de remplacer la destination de sortie en utilisant contextlib.redirect_stderr pour les tests unitaires, dans le premier cas, si le module est déjà chargé, la référence à stderr est confirmée ** remplacement Ne marche pas **. Dans ce dernier cas, le stderr est acquis à partir de sys pour la première fois lorsque le processus est exécuté, donc ** le remplacement est effectif **.

Puisque la fonction d'impression simple peut être activée avec contextlib.redirect_stdout, on peut dire que c'est l'opération pour obtenir stdout de sys sur place à chaque fois, donc si vous voulez faire correspondre le comportement à cela, veuillez décrire ce dernier. Ça va être bien.

Recommended Posts

Depuis sys importez stderr ou importez sys → sys.stderr
Python depuis ou import
depuis sklearn.datasets import fetch_mldata-> fetch_openml