25-python_类的属性-对象的属性

来源:互联网 发布:qq抢红包源码 编辑:程序博客网 时间:2024/05/19 16:50
- 类的属性
  - 公有
  - 私有
- 对象的属性
  - 公有
  - 私有


1. 类


  类的公有属性可以通过类名访问, 而类私有属性不可以

#-*- encoding:UTF-8 -*-class Demo1 :classAttrA = "类属性, 公有属性, 静态属性 ---> classAttrA"__classAttrB = "类的私有属性 ---> __classAttrB"def getClassAttrB(self):return Demo1.__classAttrBdef getClassAttrB_2(self):return self.__classAttrBif __name__ == '__main__':# 类的公有属性可以通过类名访问, 而类私有属性不可以print Demo1.classAttrAtry :print Demo1.__classAttrBexcept AttributeError, msg:print msg# 类的私有属性 只能在类范围内进行读/写instance = Demo1()print instance.getClassAttrB()print instance.getClassAttrB_2()



2. 对象


  对象的公有属性可以通过对象名访问, 而对象私有属性不可以 

#-*- encoding:UTF-8 -*-class Demo2 :def initAttrs(self):self.instanceAttrA = "对象的公有属性 ---> instanceAttrA"self.__instanceAttrB = "对象的私有属性 ---> instanceAttrB"    def displayAttrs(self):print self.instanceAttrAprint self.__instanceAttrBdef setAttrA(self,attrA):self.instanceAttrA = attrAdef setAttrB(self,attrB):self.__instanceAttrB = attrBif __name__ == '__main__':# 对象的公有属性, 可以通过对象名来访问, 对象的私有属性不可以instanceA = Demo2()instanceB = Demo2()instanceA.initAttrs()instanceB.initAttrs()print instanceA.instanceAttrAtry :print instanceA.instanceAttrBexcept AttributeError, msg :print msgprint "#" * 50instanceA.displayAttrs()instanceA.setAttrA("instanceA set attrA")instanceA.setAttrB("instanceB set attrB")print "#"*20, "instanceA", "#"*20instanceA.displayAttrs()print "#"*20, "instanceB", "#"*20instanceB.displayAttrs()