Bonjour,

je débute en Python, et je me suis retrouvé face à un problème que je ne comprends pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def __BuildPMain(self, k):
        # produit un résultat inattendu !
        #s = []
        #for i in range(4):
        #    s += [lambda x : k.SetMainDummy(i, int(x))]
 
        # pas mieux... identique à l'essai précédent
        #s = [None, None, None, None]
        #for i in range(4):
        #    s[i] = lambda x : k.SetMainDummy(i, int(x))
 
        # enfin, cela fonctionne correctement, mais pourquoi ???
        s =[lambda x : k.SetMainDummy(0, int(x)),
            lambda x : k.SetMainDummy(1, int(x)),
            lambda x : k.SetMainDummy(2, int(x)),
            lambda x : k.SetMainDummy(3, int(x))]
        return s
Plus précisément, avec les 2 premières solutions, les appels de s[n], quel que soit n, se comportent tous comme s[3], alors que si je remplis s manuellement, on a bien des s[0] ... s[3] différents

Quelqu'un a une idée ?

Merci