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

posted @ 2016-06-11 14:12  北京流浪儿  阅读(379)  评论(0编辑  收藏  举报