zoukankan      html  css  js  c++  java
  • python 类属性和实例属性、方法 访问权限问题

     1 class Animal:
     2     cls_attr = 'cls_attr'
     3     _cls_attr = '_cls_attr'
     4     __cls_attr = '__cls_attr'
     5 
     6     def __init__(self):
     7         self.ins_attr = 'ins_attr'
     8         self._ins_attr = '_ins_attr'
     9         self.__ins_attr = '__ins_attr'
    10         print('Animal __init__')
    11 
    12     def func(self):
    13         print('func')
    14 
    15     def _func(self):
    16         print('_func')
    17 
    18     def __func(self):
    19         print('__func')
    20 
    21     def __del__(self):
    22         print('Animal __del__')
    23 
    24 
    25 class Dog(Animal):
    26 
    27     def __init__(self):
    28         '''子类重写__init__函数时,需手动调用父类的__init__函数'''
    29         print('Dog __init__')
    30         super(Dog, self).__init__()
    31 
    32     def __del__(self):
    33         print('Dog __del__')
    34         super(Dog, self).__del__()
    35 
    36 
    37 a = Animal()
    38 print(a.cls_attr)
    39 print(a._cls_attr)
    40 # print(a.__cls_attr)
    41 print(a._Animal__cls_attr)
    42 print(a.ins_attr)
    43 print(a._ins_attr)
    44 # print(a.__ins_attr)
    45 print(a._Animal__ins_attr)
    46 a.func()
    47 a._func()
    48 # a.__func()
    49 a._Animal__func()
    50 del a
    51 
    52 print('-' * 50)
    53 
    54 d = Dog()
    55 print(d.cls_attr)
    56 print(d._cls_attr)
    57 # print(d.__cls_attr)
    58 print(d._Animal__cls_attr)
    59 print(d.ins_attr)
    60 print(d._ins_attr)
    61 # print(d.__ins_attr)
    62 print(d._Animal__ins_attr)
    63 d.func()
    64 d._func()
    65 # a.__func()
    66 d._Animal__func()
    67 del d
     1 Animal __init__
     2 cls_attr
     3 _cls_attr
     4 __cls_attr
     5 ins_attr
     6 _ins_attr
     7 __ins_attr
     8 func
     9 _func
    10 __func
    11 Animal __del__
    12 --------------------------------------------------
    13 Dog __init__
    14 Animal __init__
    15 cls_attr
    16 _cls_attr
    17 __cls_attr
    18 ins_attr
    19 _ins_attr
    20 __ins_attr
    21 func
    22 _func
    23 __func
    24 Dog __del__
    25 Animal __del__
  • 相关阅读:
    PHP 使用 header()实现重定向
    PHP抑制符号 @
    PHP自动加载spl_autoload_register
    打开PHP错误提示
    通过htaccess使用伪静态
    用反引号(``)标注表明或者字段名,防止跟 mysql关键字冲突
    Bootstrap 弹出框(Popover)插件
    jQuery 的 validator 验证,以及添加自定义验证规则。
    线程与并发(一) 多线程基础
    SpringCloud入门
  • 原文地址:https://www.cnblogs.com/gundan/p/8117629.html
Copyright © 2011-2022 走看看