Bonjour,
Merci pour le tutoriel (beaucoup de boulot), mais tant qu'à faire, si on veut juste les bases du langage, alors il faut y rester, et ne pas s'aventurer trop loin.
Dans ce tutoriel on parle de POO et c'est un thème à part, chaque langage étant plus ou moins OO.
En lisant en diagonale l'index, je vois Encapsulation, et là je me dis, comment cela va-t-il être expliqué ? Eh bien comme prévu, c'est à dire comme un développeur Java ou C++, et c'est une erreur. Si on ne se limite qu'aux variables privées concernant ce thème, Python ne permet pas d'interdire l'accès à une variable privée depuis l'extérieur d'une classe.
Envoyé par
documentation
“Private” instance variables that cannot be accessed except from inside an object don’t exist in Python.
Source:
https://docs.python.org/3.8/tutorial...vate-variablesDémonstration:
1 2 3 4 5 6 7
| class A:
def __init__(self):
self.__private = 5
a = A()
print(a.__dict__["_A__private"]) # 5 |
En python, renseigner les
underscores devant un nom de variable n'a pas le même effet que pour du Java et du C++ par exemple, ça permettra de donner une information/indication sur son traitement et ça en reste là.
Envoyé par
cours python
L'encapsulation consiste à masquer certaines propriétés afin qu'elles ne soient plus directement accessibles depuis l'extérieur de l'objet.
Wep pour l'encapsulation, et même si je ne parle pas de Python, dans l'exemple de code donné, quel est l'intérêt de vouloir cacher, si avec des getters/setters on peut y accéder et modifier les valeurs de chaque variable privée ?
En Python ce n'est absolument pas naturel, et on laisse la liberté aux développeurs de gérer comme bon lui semble la manière dont le client utilisera l'application développée.
Je suis d'accord sur le fait que l'encapsulation a un but mais elle ne doit pas être mal utilisée et en Python elle y est quasiment à tous les coups.
Bonne journée,
3 |
0 |