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

看板Python作者 (mumimumi)時間3年前 (2021/03/16 08:05), 3年前編輯推噓3(304)
留言7則, 4人參與, 3年前最新討論串1/3 (看更多)
最近遇到個問題,請問一下各位, 當執行python app.py時,不論MongoClient()被呼叫幾次,我希望create()只被呼叫一次 , 我目前的做法是透過global variable來判斷 create()是否被呼叫過,不過global variable用法幾乎都不太建議使用, 避免被其他地方改到,想請問各位有沒有比較好的做法,以下是我的程式碼,謝謝 --- mongo.py instance = None isInit = False def create(): mogno = MongoClient('mongo://127.0.0.1:27017', maxPoolSize=10) return mogno def mongoClient(): global isInit, instance if isInit == False: instance = create() isInit = True --- app.py import mongoClient mongoClient() mongoClient() mongoClient() -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.0.115 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1615853151.A.F70.html ※ 編輯: MaR1nlolz (114.136.223.81 臺灣), 03/16/2021 08:34:54

03/16 10:11, 3年前 , 1F
singleton
03/16 10:11, 1F

03/16 10:33, 3年前 , 2F
找找 framework 的 after_create hook
03/16 10:33, 2F

03/16 10:47, 3年前 , 3F
singleton映象中是物件只能被叫一次,請問function也
03/16 10:47, 3F

03/16 10:47, 3年前 , 4F
可以嗎
03/16 10:47, 4F

03/16 13:34, 3年前 , 5F
喔喔 沒事了
03/16 13:34, 5F

03/17 09:29, 3年前 , 6F

03/17 09:30, 3年前 , 7F
python-equivalent-of-static-variables-inside-a-function
03/17 09:30, 7F
文章代碼(AID): #1WJ_PVzm (Python)
文章代碼(AID): #1WJ_PVzm (Python)