Python通過屬性手段實現(xiàn)只允許調(diào)用一次的示例講解
如果希望一個對象的某個方法只能夠調(diào)用一次,按照我之前的慣性思維,我肯定是定義一個狀態(tài)量然后每次調(diào)用的時候修改它的值。通過查看狀態(tài)量的數(shù)值,我可以決定采取執(zhí)行不同的處理。
其實,除此之外還有一種方法,不僅僅能夠?qū)崿F(xiàn)這樣的處理,還能夠順便處理對象的屬性。
先看一下如下的代碼:
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()
程序執(zhí)行結(jié)果如下:
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<module>
obj.AttrCheck()
File "attr1.py", line 8, inAttrCheck
raiseRuntimeError("multi-excued!")
RuntimeError:multi-excued!
從上面的結(jié)果看,我們所描述到的功能已經(jīng)這樣實現(xiàn)了!
上面的屬性是給了默認的賦值,我們當然也可以改成帶有賦值數(shù)值的形式:
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)
程序的執(zhí)行結(jié)果如下:
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<module>
obj.AttrCheck(123)
File "attr1.py", line 8, in AttrCheck
raiseRuntimeError("multi-excued!")
RuntimeError:multi-excued!
以上這篇Python通過屬性手段實現(xiàn)只允許調(diào)用一次的示例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python?pandas如何使用loc和iloc讀取行數(shù)據(jù)或列數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于python?pandas如何使用loc和iloc讀取行數(shù)據(jù)或列數(shù)據(jù)的相關(guān)資料,在學習機器學習的過程中對數(shù)據(jù)進行預(yù)處理時避免不了需要使用Pandas進行大量操,需要的朋友可以參考下2023-10-10
Python Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法匯總
這篇文章主要介紹了Python中的Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法,創(chuàng)建Dataframe主要是使用pandas中的DataFrame函數(shù),其核心就是第一個參數(shù):data,傳入原始數(shù)據(jù),因此我們可以據(jù)此給出六種創(chuàng)建Dataframe的方法,需要的朋友可以參考下2023-05-05
讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實例講解
今天小編就為大家分享一篇讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python Opencv實現(xiàn)單目標檢測的示例代碼
這篇文章主要介紹了Python Opencv實現(xiàn)單目標檢測的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09

