1# mode: run 2# ticket: 5 3 4class CyTest(object): 5 """ 6 >>> cy = CyTest() 7 >>> '_CyTest__private' in dir(cy) 8 True 9 >>> cy._CyTest__private() 10 8 11 >>> '__private' in dir(cy) 12 False 13 >>> '_CyTest__x' in dir(cy) 14 True 15 16 >>> '__x' in dir(cy) 17 False 18 """ 19 __x = 1 20 def __private(self): return 8 21 22 def get(self): 23 """ 24 >>> CyTest().get() 25 (1, 1, 8) 26 """ 27 return self._CyTest__x, self.__x, self.__private() 28 29 def get_inner(self): 30 """ 31 >>> CyTest().get_inner() 32 (1, 1, 8) 33 """ 34 def get(o): 35 return o._CyTest__x, o.__x, o.__private() 36 return get(self) 37 38class CyTestSub(CyTest): 39 """ 40 >>> cy = CyTestSub() 41 >>> '_CyTestSub__private' in dir(cy) 42 True 43 >>> cy._CyTestSub__private() 44 9 45 >>> '_CyTest__private' in dir(cy) 46 True 47 >>> cy._CyTest__private() 48 8 49 >>> '__private' in dir(cy) 50 False 51 52 >>> '_CyTestSub__x' in dir(cy) 53 False 54 >>> '_CyTestSub__y' in dir(cy) 55 True 56 >>> '_CyTest__x' in dir(cy) 57 True 58 >>> '__x' in dir(cy) 59 False 60 """ 61 __y = 2 62 def __private(self): return 9 63 64 def get(self): 65 """ 66 >>> CyTestSub().get() 67 (1, 2, 2, 9) 68 """ 69 return self._CyTest__x, self._CyTestSub__y, self.__y, self.__private() 70 71 def get_inner(self): 72 """ 73 >>> CyTestSub().get_inner() 74 (1, 2, 2, 9) 75 """ 76 def get(o): 77 return o._CyTest__x, o._CyTestSub__y, o.__y, o.__private() 78 return get(self) 79 80class _UnderscoreTest(object): 81 """ 82 >>> ut = _UnderscoreTest() 83 >>> '__x' in dir(ut) 84 False 85 >>> '_UnderscoreTest__x' in dir(ut) 86 True 87 >>> ut._UnderscoreTest__x 88 1 89 >>> ut.get() 90 1 91 """ 92 __x = 1 93 94 def get(self): 95 return self.__x 96