Moin Orlok,
zwei Fragen:
class Container: def __init__(self): self.__data = [] def _internal_method(self): pass Container().__data.append('value') # AttributeError
Python 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