Il y a quelques jours je cherchais sur le net et j'ai trouvé un article intéressant sur les dictionnaires python. Il s'agissait d'utiliser les touches du dictionnaire pour appeler une fonction. Dans cet article, l'auteur a défini certaines fonctions, puis un dictionnaire avec une clé exactement identique au nom de la fonction. Puis il pourrait obtenir un paramètre d'entrée de l'utilisateur et appeler la même méthode (quelque chose comme la mise en œuvre de casse) Après cela, je me suis rendu compte de la même chose, mais en quelque sorte différent. Je veux savoir comment je peux mettre en œuvre cela. Si j'ai une fonction:Utiliser une chaîne pour appeler la fonction en Python
def fullName(name = "noName", family = "noFamily"):
return name += family
Et maintenant, si j'ai une chaîne comme ceci:
myString = "fullName(name = 'Joe', family = 'Brand')"
est-il un moyen d'exécuter cette requête et obtenir un résultat: JoeBrand
Par exemple quelque chose Je me souviens que nous pourrions donner une chaîne à la commande exec() et c'est ce qu'elle fait pour nous. Mais je ne suis pas sûr de ce cas particulier, et je ne connais pas la manière efficace de Python. Et aussi je serai si reconnaissant de m'aider à gérer ces fonctions de retour de valeur, par exemple dans mon cas comment puis-je imprimer le nom complet retourné par cette fonction?
vous fonctionnez est va ... Aucun retour utilisation + au lieu de + = – Ant
Pour ce faire, utilisez: getattr (myString, 'fullName') (name = 'Joe', family = 'Brand') [voir la question en double liée en haut de la page] – Stew
[Note: getattr() est utilisé par la première réponse de la question que ce post duplique, mais n'est pas mentionné ci-dessous. Je pensais qu'il serait utile d'apparaître sur cette page elle-même, donc je plie la convention contre la réponse aux questions dans les commentaires.] – Stew