2010-11-10 13 views
0

Je dois créer une fonction, printObjects (attribut, option), qui doit imprimer les objets en fonction d'un certain attribut. L'attribut peut prendre des entrées ou des chaînes en entrée. L'attribut option est facultatif. Comment puis-je l'implémenter pour ma classe?Comment puis-je gérer les attributs dans python?

+2

« L'attribut option est facultative » quoi?!?! J'espère que cela signifie que le second paramètre de printObjects, nommé 'option', n'est pas obligatoire. Sinon, je suis très confus avec les différentes utilisations de l'option/attribut. En supposant que vous vouliez dire ce que j'espère, quelle est l'option pour? et qu'est-ce que par défaut? –

+0

* print * * les * * objets * * basés * * sur * * a * * certain * * attribut * qu'est-ce que cela veut dire? : - | – fortran

Répondre

1

Je suppose que vous voulez quelque chose comme ça, ou peut-être il sera utile au moins:

 
def printObject(obj, attributes=()): 
    for a in attributes: 
    print getattr(obj, a) 
+7

** N'utilisez jamais quelque chose mutable comme argument par défaut. ** (A moins que vous ne sachiez comment cela fonctionne et * want * ce comportement, aussi, il gagne 'resul tin bugs * dans cet exemple * mais il vaut mieux le signaler de toute façon Voir http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument – delnan

+0

Dans ce cas, c'est bien, 'attributs' n'est pas écrit. –

+1

C'était la bonne façon de le faire. Merci. Désolé de mon ambiguïté dans la question originale, mais ce mec a eu ce que je voulais dire :) – Trim