I.e. prepending two underscores to an attribute name makes it harder to use from outside the class.% cat stack.py class Stack(): def __init__(self): self.__items = [] def __repr__(self): return str(self.__items) def push(self, x): self.__items.append(x) def pop(self): self.__items.pop() % python3 Python 3.7.4 (default, Sep 7 2019, 18:27:02) [Clang 10.0.1 (clang-1001.0.46.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from stack import Stack >>> s = Stack() >>> s.push(42) >>> s [42] >>> s.__items Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Stack' object has no attribute '__items' >>>
In reply to Re: Language design: direct attribute access and postponed mutators (Perl Vs Python)
by Arunbear
in thread Language design: direct attribute access and postponed mutators (Perl Vs Python)
by LanX
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |