Python vérifier si la fonction existe, sans essayer
En python comment voulez-vous vérifier si une fonction existe sans réellement l'exécution de la fonction (c'est à dire à l'aide de l'essayer)? Je voudrais tester si il existe un module.
Dépend du contexte, si c'est une classe, s'est global défini, vous ll ont à étendre la question à fournir plus d'éléments.
OriginalL'auteur Josh Wood | 2014-01-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
dir
pour vérifier si un nom est dans un module:Dans l'exemple de code ci-dessus, nous avons test pour la
os.marche
fonction.callable(getattr(os,'walk'))
Que faire si je veux savoir si il existe un espace de noms global (ou existantes sur les importations)?
OriginalL'auteur iCodez
Vous l'avez suggéré,
try
except
. En effet, vous pourriez utiliser:Ce vérifie si
variable
est dans la portée (à ne pas faire appel de la fonction).Ce n'est pas l'appel de la fonction - qui nécessiterait
variable()
. Il vérifie juste sivariable
est défini.Oh je ne savais pas que vous pouviez le faire. Je ne semble pas être en mesure de retirer le downvote, sauf si vous modifiez votre réponse. Pouvez-vous changer quelque chose de mineur, donc je peux l'enlever?
Assurez-vous.
OriginalL'auteur rlms
où:
m = nom du module
f = fonction définie dans le m
OriginalL'auteur Paula Cogeanu
Si vous vérifiez si la fonction existe dans un package:
Si vous vérifiez si la fonction existe dans votre script /espace de noms:
OriginalL'auteur openwonk