python类的特性

时间:2023-03-09 01:32:11
python类的特性
 #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