Mon code
1er fichier:
data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function(*data)
2ème fichier:
my_function(*data):
schoolname = school
cityname = city
standard = standard
studentname = name
dans le code ci-dessus, seules les clés du dictionnaire "data" ont été passées à my_function()
, mais je veux que les paires clé-valeur soient transmises. Comment corriger cela?
Je veux que la my_function()
soit modifiée comme ceci
my_function(school='DAV', standard='7', name='abc', city='delhi')
et ceci est mon exigence, donnez des réponses à cette question
EDIT: clé du dictionnaire classe est remplacé par standard
Si vous voulez les utiliser comme cela, définissez la fonction avec les noms de variables comme d'habitude (mais utilisez klass
pour class
, vous ne pouvez pas utiliser de mots réservés):
def my_function(school, city, klass, name):
schoolname = school
cityname = city
standard = klass
studentname = name
Maintenant (tant que vous renommez la classe en klass dans votre dictionnaire), vous pouvez utiliser **
lorsque vous appelez la fonction:
my_function(**data)
et cela fonctionnera comme vous voulez.
* data interprète les arguments en tant que tuples, vous devez plutôt transmettre ** data qui interprète les arguments en tant que dictionnaire.
data = {'school':'DAV', 'class': '7', 'name': 'abc', 'city': 'pune'}
def my_function(**data):
schoolname = data['school']
cityname = data['city']
standard = data['class']
studentname = data['name']
Vous pouvez appeler la fonction comme ceci:
my_function(**data)
Vous pouvez simplement le passer
def my_function(my_data):
my_data["schoolname"] = "something"
print my_data
ou si tu veux vraiment
def my_function(**kwargs):
kwargs["schoolname"] = "something"
print kwargs