#encoding=utf-8 class Province: #静态字段
memo = '这里是静态变量' def __init__(self,name,capital,leader,flag):
#动态字段
self.Name = name
self.Capital = capital
self.Leader = leader #私有字段
self.__Thailand = flag #动态方法
def sports_meet(self):
print self.Name + '正在开会'; #静态方法
@staticmethod
def foo(func=''):
print '这里是静态方法'+func #直接把方法变为属性访问
@property
def Bar(self):
return 'do something' #间接访问私有属性
def show(self):
print self.__Thailand #通过property访问私有属性
#只读
@property
def Thailand(self):
return self.__Thailand #修改私有属性
@Thailand.setter
def Thailand(self,value):
self.__Thailand = value #私有方法
def __sha(self):
print '打印私有方法' #把类当作函数访问
def __call__(self):
print 'call test'
#访问动态属性、方法,需要new pro = Province('山西','太原','小鹏',True) print pro.Name
pro.sports_meet()
pro.show() print pro.Bar
print pro.Thailand
#说明self就相当于把pro对象传入,及self.Name = pro.Name,本质上一样的 #访问静态的属性、方法
print '------------'
print Province.memo
Province.foo() #另外动态的可以访问静态的属性、方法
print '------------'
print pro.memo
pro.foo(',但可以用对象访问') print '--------'
#设置私有属性
print pro.Thailand
pro.Thailand = False
print pro.Thailand print '------'
pro()
山西
山西正在开会
True
do something
True
------------
这里是静态变量
这里是静态方法
------------
这里是静态变量
这里是静态方法,但可以用对象访问
--------
True
False
--------
call test