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