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

- 类的属性
  - 公有
  - 私有
- 对象的属性
  - 公有
  - 私有


1. 类


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

#-*- encoding:UTF-8 -*-

class Demo1 :

	classAttrA = "类属性, 公有属性, 静态属性 ---> classAttrA"
	__classAttrB = "类的私有属性 ---> __classAttrB"


	def getClassAttrB(self):
		return Demo1.__classAttrB

	def getClassAttrB_2(self):
		return self.__classAttrB


if __name__ == '__main__':

	# 类的公有属性可以通过类名访问, 而类私有属性不可以
	print Demo1.classAttrA	
	
	try :
		print Demo1.__classAttrB	
	except 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.instanceAttrA
		print self.__instanceAttrB

	def setAttrA(self,attrA):
			self.instanceAttrA = attrA

	def setAttrB(self,attrB):
			self.__instanceAttrB = attrB



if __name__ == '__main__':
	
	# 对象的公有属性, 可以通过对象名来访问, 对象的私有属性不可以
	
	
	instanceA = Demo2()
	instanceB = Demo2()

	instanceA.initAttrs()
	instanceB.initAttrs()
	
	print instanceA.instanceAttrA

	try :
		print instanceA.instanceAttrB
	except AttributeError, msg :
		print msg		

	print "#" * 50
	instanceA.displayAttrs()

	instanceA.setAttrA("instanceA set attrA")
	instanceA.setAttrB("instanceB set attrB")

	print "#"*20, "instanceA", "#"*20
	instanceA.displayAttrs()

	print "#"*20, "instanceB", "#"*20
	instanceB.displayAttrs()



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值