2010-02-22 7 views

Répondre

0

On dirait que vous voulez transmettre un tableau d'éléments de configuration. Voir le source code.

1

Ce que vous voyez est "arguments mot-clé". Vous pouvez appeler le constructeur avec un dictionnaire ou des arguments nommés. Voici un exemple d'utilisation des arguments de mot-clé:

 
class MyClass(object): 
    def __init__(self,**kwargs): 
     if 'val' in kwargs: 
      self.__value = kwargs['val']; 
     elif 'value' in kwargs: 
      self.__value = kwargs['value']; 
     else: 
      raise ValueError("Requires parameter 'val' or 'value'."); 
    def getValue(self): 
     return self.__value; 

# ... 

def main(argv=None): 
    # ... 
    instance1 = MyClass(val=5); 
    x = instance1.getValue(); # value is 5 

    instance2 = MyClass(value=6); 
    y = instance2.getValue(); # value is 6 

    valuedict = {'val':10}; 
    instance3 = MyClass(**valuedict); 
    z = instance3.getValue(); # value is 10 

arguments mots-clés sont gentils car ils peuvent faire une grande souplesse, et vos fonctions et les constructeurs - comme on peut le voir à partir du dernier cas instanciation - il devient possible de construire l'objet d'un dictionnaire de configuration. Le principal inconvénient des arguments de mots clés est que, parce qu'il est si flexible, il peut ne pas être évident quelles sont les options. Vous pouvez essayer d'exécuter "pydoc pyvb.vm" ou, comme cela a été souligné, vous pouvez jeter un oeil à la source code, qui montre les attributs supportés.