Bonjour,

J'ai créér une classe Projet.py. Dans mon fichier main, j'ai remarqué que je peux acceder à la variable _nomProjet. Je voulais savoir quelle est la meilleur technique qu'on peut encapsuler nos variable; et comment ne pas faciliter l'acces à une instance d'une classe d'acceder à une variable du constructeur ?

Merci.



Projet.py

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
 
 
from bokeh.util.session_id import random
 
class Projet:
    def __init__(self,nom,details):
        self._codeProjet     = 'PRO'+ str(random.randint(100,10000))
        self._nomProjet      = nom
        self._detailsProjet  = details
 
    @property
    def codeProjet(self):
        return self._codeProjet
 
 
    @property
    def nomProjet(self):
        return self._nomProjet
    @nomProjet.setter
    def nomProjet(self,val):
        self._nomProjet = val
 
 
    def AfficherInfoProjet(self):
        print('Le projet saisi est : ' + self.codeProjet)


main.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
from classes.Projet import Projet
 
if __name__ == "__main__":
    p1 = Projet('JeuPalmas', 'Il est inventé par Jean le 12 oct 2017')
 
    print(p1._nomProjet, p1.nomProjet)