Je suis en train de le faire:Pourquoi un python dict.update() ne renvoie-t-il pas l'objet?
award_dict = {
"url" : "http://facebook.com",
"imageurl" : "http://farm4.static.flickr.com/3431/3939267074_feb9eb19b1_o.png",
"count" : 1,
}
def award(name, count, points, desc_string, my_size, parent) :
if my_size > count :
a = {
"name" : name,
"description" : desc_string % count,
"points" : points,
"parent_award" : parent,
}
a.update(award_dict)
return self.add_award(a, siteAlias, alias).award
Mais si vraiment senti lourd dans la fonction, et je l'aurais plutôt fait:
return self.add_award({
"name" : name,
"description" : desc_string % count,
"points" : points,
"parent_award" : parent,
}.update(award_dict), siteAlias, alias).award
Pourquoi ne met pas à jour retourner l'objet afin que vous puissiez chaîne?
JQuery fait cela pour chaîner. Pourquoi n'est-ce pas acceptable en python?
Eh bien, cela va créer un autre dictionnaire après que je devais faire un. Je voulais créer un dict, puis ajouter un tas d'autres valeurs, puis le donner à une fonction. –
@Paul, et c'est exactement ce que vous faites - avec deux déclarations (beaucoup plus lisibles que la manière imbriquée que vous vouliez) qui vous "se sentaient vraiment lourdes". Modification de ma réponse pour montrer comment éviter de créer 'a' tout à fait, btw, –
' dict (a, ** award_dict) 'rock juste et était exactement ce que je voulais-merci pour cela! (utilisait 'dict (d1.items() + d2.items()) 'before) –