Encapsulation - Accès au attributs
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:
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:
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) |