python封装 私有成员、@property和@setter

私有成员

作用: 当你在封装时,只需要向类外提供必要的功能,需要把外界不必要的隐藏掉(实现的细节)
语法: 命名使用双下划线开头(通过obj.__dict__查看,名称被修改为_类名__成员名)

class Wife:
	'''演示对私有成员进行只读'''
	 def __init__(self,name):
	 	self.name = name
	 	self.__age = 25
	 
	 #对私有成员进行读操作的方法
	 @property
	 def age(self):
	 	return self.__age

w01 = Wife01('小乔')	
w01.age = 18	#对他进行写操作会报错(因为被@property拦截了,显示can`t set attribute)	
class Wife:
	'''演示实现对私有成员进行读写'''
	def __init__(self,name,age):
		self.name = name
		self.age = age
	
	#对age进行读操作的方法
	@property
	def age(self):
		return self.__age
	
	#对age进行写操作的方法
	@age.setter
	def age(self,value):
		if 25<=value<=30:
			self.__age = value
		else:
			raise ValueError(’我不要')
		
		
w01 = Wife('甄宓',250)
print(w01.age)
print(w01.__dict__)	#查看该类的所有属性,包括私有变量
print(w01.__wife__age)	#访问私有变量(私有变量是障眼法,其实还是可以通过这种方式访问)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值