Re: [問題] 限制某個function只能被叫到一次

作者: ddavid (謊言接線生)   2021-03-16 10:48:12
※ 引述《MaR1nlolz (mumimumi)》之銘言:
: 最近遇到個問題,請問一下各位,
: 當執行python app.py時,不論MongoClient()被呼叫幾次,我希望create()只被呼叫一次
: ,
: 我目前的做法是透過global variable來判斷
: create()是否被呼叫過,不過global variable用法幾乎都不太建議使用,
: 避免被其他地方改到,想請問各位有沒有比較好的做法,以下是我的程式碼,謝謝
我覺得根本問題是你的使用方式出了問題:
1. instance本質上也不應該global使用
2. 你這段Code裡面有過多不必要的包裝
先跳過問題1。針對問題2,你會發現這裡的isInit == False幾乎等價於
instance is None(除非很例外的情況導致MongoClient傳回None),也就是這是多
餘的邏輯包裝。最簡單的方式是:

Links booklink

Contact Us: admin [ a t ] ucptt.com