1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| def save(filename,**kwargs): #kwargs sera un dico et non une liste
cPickle.dump(kwargs, open(filename, "wb"),protocol=2)
if __name__=='__main__':
#soluce 1 : ne pas déclarer file, et passer directement filename en argument a save sans le déclarer au niveau principal
save( 'fooooooo', **globals()) # **globals() permet de passer le contenu de globals() comme si nous avions écrit " var1=56, var2='abc' "
#soluce 2 : déclarer filename après avoir récupéré une COPIE de globals
dico = globals().copy() #recuperer une copie de globals
filename = 'fooooo'
save(filename, **dico)
#soluce 3 : enlever la/les variables non désirée(s) de la COPIE de globals
filename = 'fooooo'
dico = globals().copy() #recuperer une copie de globals
del dico['filename']
save(filename, **dico) |
Partager