Bonjour,
j'ai besoin de créer une fonction permettant la modification d'un set entrée en paramètres, néanmoins si j'arrive a créer une copie locale de ce set à l'intérieur de la fonction et à le modifier en interne de cette fonction (ce qui en soi ne me sert à rien) je n'arrive pas à modifier le set entrée en paramètre (je ne sais pas si je suis très clair), enfin si mais je ne parviens qu'as l'effacer. Y a-t-il moyen de modifier des set() au travers de fonctions ou de créer des set de portées globales ?

Voici l'appel de la fonction que j'ai réalisé et la fonction en elle même:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GestionBlockEnVol(canvas, Image,CasePleine)

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
18
19
20
21
22
23
24
25
def GestionBlockEnVol(canvas, Mur, CP): #CP= Cases Pleines
 
        for J in range(len(CaseListe)):
            if len(CaseListe[J]) == NOMBRECASELARGEUR:
                for i in CaseListe[J]:
                    canvas.delete(i)
                SetInter1 = set()
                SetInter2 = set()
                SetInter3 = set() 
                SetInter3 = CP.copy()
                for l in CP:
 
                    if l[1]== J:
                        SetInter1.add(l)
                    if l[1] < J:
                        SetInter2.add((l[0],l[1]+1))
                        SetInter1.add(l)
 
                CP.clear()
                print("setInter3 ",SetInter3," SetInter1 ",SetInter1," SetInter2 ", SetInter2  )
                CP = (SetInter3.difference(SetInter1)).union(SetInter2)
                SetInter1.clear()
                SetInter2.clear()
                SetInter3.clear()
                print("CP",CP)
En sortie de fonction, CasePleine est vide mais CP contient plein d'éléments.

Merci d'avance