• 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__
  • 相关阅读:
    ansible部署apache
    yum换源,rpm包下载,源码包安装
    zabbix 监控apache
    分块大法 -- 优雅的暴力
    [每日一题]:建立联系 -- 最小生成树
    [每日一题]:P1016 旅行家的预算 -- 反悔贪心
    [每日一题]:[NOIP2010]关押罪犯 -- 并查集
    Python基础: 元组的基本使用
    Python基础: 列表的基本使用
    Python基础:分支、循环、函数
  • 原文地址:https://www.cnblogs.com/gundan/p/8117629.html
Copyright © 2020-2023  润新知