2016-02-11 1 views
0

J'essaie d'apprendre à distribuer une action qui est liée à un élément d'un dictionnaire.Comment utiliser le "var []. Function()" répartition de l'appelant?

J'ai vu beaucoup de fois la formule dictionary[element].function(), et là la fonction appelle le element du dictionnaire. J'essaye de faire cela avec ce code, mais je ne peux pas obtenir la méthode de travail.

Des idées?

(La dernière ligne du code est la syntaxe que je veux utiliser)

Merci à l'avance!

def function(arg): 
    print 'Running ' + str(arg) 

data={} 
data[0]={'name':'Ruben', 'run':function} 
data[1]={'name':'David', 'run':function} 

print data 
data[0].run() 
+0

Vouliez-vous dire 'data [0] [ 'run']()'? Vous ne pouvez pas accéder aux valeurs en utilisant la clé comme un attribut dans les dictionnaires Python vanille, et un dictionnaire n'a pas d'attribut appelable nommé 'run'. – jonrsharpe

+0

Bonjour jonsharpe, oui, je veux dire ça. Mais je l'ai vu beaucoup de fois (dans le format de la dernière ligne du code) et j'aimerai apprendre à le faire. –

+0

Ensuite, vous devez placer la bonne chose dans le dictionnaire 'data', c'est-à-dire un objet avec un attribut appelable' run'. – jonrsharpe

Répondre

1

Utilisez data[0]['run']('Hello World!'). Cette exécute la fonction avec l'argument Hello World! et impressions:

Running Hello World!