• python类的特性


     1 #encoding=utf-8
     2 
     3 class Province:
     4     
     5     #静态字段
     6     memo = '这里是静态变量'
     7 
     8     def __init__(self,name,capital,leader,flag):
     9       #动态字段
    10       self.Name = name
    11       self.Capital = capital
    12       self.Leader = leader
    13     
    14       #私有字段
    15       self.__Thailand = flag
    16 
    17 
    18     #动态方法
    19     def sports_meet(self):
    20       print self.Name + '正在开会';
    21 
    22 
    23     #静态方法
    24     @staticmethod
    25     def foo(func=''):
    26       print '这里是静态方法'+func
    27 
    28     #直接把方法变为属性访问
    29     @property
    30     def Bar(self):
    31       return 'do something'
    32 
    33     #间接访问私有属性
    34     def show(self):
    35       print self.__Thailand
    36 
    37     #通过property访问私有属性
    38     #只读
    39     @property
    40     def Thailand(self):
    41       return self.__Thailand
    42 
    43     #修改私有属性
    44     @Thailand.setter
    45     def Thailand(self,value):
    46       self.__Thailand = value
    47 
    48     #私有方法
    49     def __sha(self):
    50       print '打印私有方法'

       #把类当作函数访问
    51 def __call__(self):
          print 'call test'
    52 
    53 #访问动态属性、方法,需要new
    54 
    55 pro = Province('山西','太原','小鹏',True)
    56 
    57 print pro.Name
    58 pro.sports_meet()
    59 pro.show()
    60 
    61 print pro.Bar
    62 print pro.Thailand
    63 #说明self就相当于把pro对象传入,及self.Name = pro.Name,本质上一样的
    64 
    65 #访问静态的属性、方法
    66 print '------------'
    67 print Province.memo
    68 Province.foo()
    69 
    70 #另外动态的可以访问静态的属性、方法
    71 print '------------'
    72 print pro.memo
    73 pro.foo(',但可以用对象访问')
    74 
    75 print '--------'
    76 #设置私有属性
    77 print pro.Thailand
    78 pro.Thailand = False
    79 print pro.Thailand

    print '------'
      pro()

    山西

    山西正在开会

    True

    do something

    True

    ------------

    这里是静态变量

    这里是静态方法

    ------------

    这里是静态变量

    这里是静态方法,但可以用对象访问

    --------

    True

    False

    --------

    call test

  • 相关阅读:
    python视频教程大全(转载)
    数据挖掘十大经典算法(转载)
    等值线算法(转载)
    主成分分析PCA(转载)
    K-Means 算法(转载)
    面试常见问题小结
    二叉树的深度和宽度
    二叉树最大路径和-Binary Tree Maximum Path Sum
    C++中单例模式
    OC对象的动态和静态构造区别
  • 原文地址:https://www.cnblogs.com/gide/p/5575259.html
Copyright © 2020-2023  润新知