0
votes

Comment imprimer une variable dynamique?

Je suis nouveau en python et j'ai un problème: dans le paquet que j'utilise, il y a une commande que je peux me rappeler de la manière suivante: exemple.d1, exemple.d2, changeant le numéro qui suit RÉ. Je souhaite créer une boucle pour imprimer tous les résultats avec le numéro, après D, de 1 à 100.

J'ai essayé avec xxx

et l'erreur est < Code> Soulevez AttributeError ("'*' n'a aucun attribut"% s ""% nom) attributError: "*" n'a aucun attribut 'di'

Comment puis-je retourner cette commande "en boucle "?

J'espère que ma description est claire, merci


2 commentaires

Imprimer (getattr (exemple, f "d {i}")) pourrait fonctionner.


Vous pouvez accepter la réponse qui vous ait plus aidé et aussi uppote toutes les réponses utiles. :)


3 Réponses :


2
votes

Vous pouvez soit utiliser eval (non recommandé), accéder aux variables locales avec locaux () (dépend du contexte) ou d'utilisation préférable d'utiliser le getattr méthode pour accéder aux variables d'instance de classe de Exemple : xxx

si vous souhaitez renvoyer une valeur spécifique si di n'existe pas, vous pouvez ajouter cela comme une valeur de retour par défaut à getattr , fi Renvoie la chaîne 'variable diothe introuvable' . xxx


0 commentaires

1
votes

Vous pouvez imprimer votre objet (instance de classe) State / Attributs de tant de façons, l'un d'entre eux est le cas intégré getattr xxx

en utilisant Inspecter module < BlockQuote>

Le module d'inspection fournit plusieurs fonctions utiles pour aider à obtenir informations sur des objets en direct tels que des modules, des classes, des méthodes, Fonctions, Tracebacks ..

Utilisez la méthode ci-dessous:

inspecter.getmembers (objet [ prédicat])

Renvoyez tous les membres d'un objet dans une liste de paires (nom, valeur)) trié par nom. Si l'argument de prédicat optionnel .... xxx


0 commentaires

1
votes

Vous pouvez utiliser f-strings qui est une manière améliorée d'utiliser str.cformat () xxx


0 commentaires