On Sun, Jul 23, 2017 at 07:02:09PM +0400, Abdur-Rahmaan Janhangeer wrote: > assert(... is liked by some strongly typed programmers
Not just strongly-typed programmers: http://import-that.dreamwidth.org/676.html > data encapsulation might be depressing to some migrating coders "Data encapsulation" does not mean "data hiding". Python has excellent data encapsulation: - packages encapsulate modules together; - modules encapsulate classes, functions and variables together; - classes encapsulate object state and behaviour together. Compared to languages like C++ and Java, Python's data HIDING is weak. Python has no private, public, protected, etc. But even in the strictest languages like C++ and Java, there is usually some way to "defeat" the compiler and get access to private data and break data hiding. For instance, in C++ you can often do something like #define private public and in Java you can use reflection. The creator of Python, Guido van Rossum, understands that sometimes there *are* good uses for breaking data hiding (usually for testing and debugging). Because Python is an interpreter where most features are done at runtime rather than compile time, implementing data hiding in Python would hurt performance, and there would be some way to break it anyway. So why bother? Instead, Python is "for consenting adults". Data hiding is very simple: the developer flags objects they want to keep private with a leading underscore: _private and that tells you that this is private and you shouldn't touch it. If you decide to ignore this and touch it anyway, then: - either you have a good reason, and that's okay; - or you are a "consenting adult", and if your code blows up, well, that's your own fault and don't complain to us. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor