python私有字段的读写和修改,析构函数

1.hs._Province__str() # python中访问私有方法的途径
2.类中的可读和可写特性:(推荐此方法用于访问和修改私有字段)
使用@property(特性)和@bars.setter两种装饰器即可,python3中可以不用继承object,继承或者不继承都必须有@bars.setter才能修改属性

class Province(object):
	
	# 类属性(静态字段)
	name = '最多的省份'  # 静态字段,由类直接调用
	
	def __init__(self, name, capital, leader, flag):
		# 动态字段
		self.name = name
		self.capital = capital
		self.leader = leader
		
		self.__myset = flag # 私有属性,只能在类中访问
	# 只读
	@property  # 对象的特性 对象.bars调用即可
	def bars(self):
		print(self.__myset)
	# 可改
	@bars.setter
	def bars(self, value):
		self.__myset = value


hs = Province('日本', '东京', '小泉', True)
# 输出结果为True
hs.bars
# 修改属性值              
hs.bars = False
# 修改成功,输出结果为False
hs.bars

3.析构函数和特殊的__call__方法

class Foo:

    def __init__(self):
        pass

    # 此方法是销毁对象的操作,是对象生命周期的最后步骤
	def __del__(self):
        print('销毁了')

    def go(self):
        print('Go')

    def __call__(self, *args, **kwargs):
        print('call')

f1 = Foo()
f1.go()
f1()  # 当对象作为函数被调用,python会去执行call方法,如果没有写call方法,会报错:'Foo' object is not callable
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值