python 只执行一次_Python通过属性手段实现只允许调用一次的示例讲解

如果希望一个对象的某个方法只能够调用一次,按照我之前的惯性思维,我肯定是定义一个状态量然后每次调用的时候修改它的值。通过查看状态量的数值,我可以决定采取执行不同的处理。

其实,除此之外还有一种方法,不仅仅能够实现这样的处理,还能够顺便处理对象的属性。

先看一下如下的代码:

class DemoClass:

def __init__(self):

pass

def AttrCheck(self):

try:

self.value

print("already hasvalue")

raise ValueAttrError

except AttributeError:

self.value = 0

print(self.value)

obj = DemoClass()

obj.AttrCheck()

obj.AttrCheck()

程序执行结果如下:

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python attr1.py

0

already has value

Traceback (mostrecent call last):

File "attr1.py", line 15, in

obj.AttrCheck()

File "attr1.py", line 8, inAttrCheck

raiseRuntimeError("multi-excued!")

RuntimeError:multi-excued!

从上面的结果看,我们所描述到的功能已经这样实现了!

上面的属性是给了默认的赋值,我们当然也可以改成带有赋值数值的形式:

class DemoClass:

def __init__(self):

pass

def AttrCheck(self,value):

try:

self.value

print("already hasvalue")

raiseRuntimeError("multi-excued!")

except AttributeError:

self.value = value

print(self.value)

obj = DemoClass()

obj.AttrCheck(123)

obj.AttrCheck(123)

程序的执行结果如下:

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python attr1.py

123

already has value

Traceback (mostrecent call last):

File "attr1.py", line 15, in

obj.AttrCheck(123)

File "attr1.py", line 8, in AttrCheck

raiseRuntimeError("multi-excued!")

RuntimeError:multi-excued!

以上这篇Python通过属性手段实现只允许调用一次的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值