summaryrefslogtreecommitdiff
path: root/test/functional/access_to_protected_members.py
blob: 809e7dcc6718929e94094d922d1e25cac7299f52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# pylint: disable=too-few-public-methods, W0231, print-statement
"""Test external access to protected class members."""


class MyClass(object):
    """Class with protected members."""
    _cls_protected = 5

    def __init__(self, other):
        MyClass._cls_protected = 6
        self._protected = 1
        self.public = other
        self.attr = 0

    def test(self):
        """Docstring."""
        self._protected += self._cls_protected
        print self.public._haha  # [protected-access]

    def clsmeth(cls):
        """Docstring."""
        cls._cls_protected += 1
        print cls._cls_protected
    clsmeth = classmethod(clsmeth)

class Subclass(MyClass):
    """Subclass with protected members."""

    def __init__(self):
        MyClass._protected = 5

INST = Subclass()
INST.attr = 1
print INST.attr
INST._protected = 2  # [protected-access]
print INST._protected  # [protected-access]
INST._cls_protected = 3  # [protected-access]
print INST._cls_protected  # [protected-access]