Moin Orlok,
zwei Fragen:
class Container: def __init__(self): self.__data = [] def _internal_method(self): pass Container().__data.append('value') # AttributeErrorPython besitzt allerdings einen Mechanismus namens Name Mangling. Wird ein Eigenschafts- oder Methodenname wie in dem Beispiel oben mit zwei Unterstrichen geprefixt, statt bloß mit einem, dann kann die Eigenschaft oder Methode von außerhalb des Objektes nur durch explizite Angabe des Klassennamens referenziert werden.
Container()._Container__data.append('value')
Fehlt hier nicht irgendwo ein Punkt, z.B. Container().Container.__data.append('value')?
const Stack = function() { const data = []; // push and pop can access data via closure return class Stack { push(value) { return data.push(value), this; } pop() { return data.pop(); } }; }(); new Stack().push('value').pop(); // 'value'
Man kann das innere data-Array verändern, obwohl es const ist?
Viele Grüße
Robert