zoukankan      html  css  js  c++  java
  • python无私有成员变量

    python解释器将__init__函数里的__z变量转成 _classname__z了。明确规则后外部依旧能够通过实力对象来訪问。

    In [1]: class aa:
       ...:     def __init__(self):
       ...:         self.x = 10
       ...:         self.y = 11
       ...:         self.__z = 12
       ...:     
    
    In [2]: a = aa()
    
    In [3]: print a.x
    10
    
    In [4]: print a.y
    11
    
    In [5]: print a.__z
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-5-a90abb2fd47d> in <module>()
    ----> 1 print a.__z
    
    AttributeError: aa instance has no attribute '__z'
    
    In [6]: dir(a)
    Out[6]: ['__doc__', '__init__', '__module__', '_aa__z', 'x', 'y']
    
    In [7]: print _aa.__z
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-7-b2d0b9a63937> in <module>()
    ----> 1 print _aa.__z
    
    NameError: name '_aa' is not defined
    
    In [8]: print _aa__z
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-8-80bb4dde0a55> in <module>()
    ----> 1 print _aa__z
    
    NameError: name '_aa__z' is not defined
    
    In [9]: print a._aa__z
    12
    
    In [10]: a.__z = 14
    
    In [11]: dir(a)
    Out[11]: ['__doc__', '__init__', '__module__', '__z', '_aa__z', 'x', 'y']
    
    In [12]: print a._aa__z
    12
    





  • 相关阅读:
    [POJ]poj2632(模拟)
    [EOJ]2019 ECNU XCPC March Selection #2
    [POJ]POJ1328(trie)
    卡特兰数相关总结
    2019海亮夏令营随笔
    树上数数 题解
    护卫小队 题解
    洛谷 P2966 [USACO09DEC]牛收费路径Cow Toll Paths 题解
    洛谷 P4735 最大异或和
    登峰造极 题解
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7106422.html
Copyright © 2011-2022 走看看