看板 Python 關於我們 聯絡資訊
最近遇到個問題,請問一下各位, 當執行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
sherees: singleton 03/16 10:11
zerof: 找找 framework 的 after_create hook 03/16 10:33
TitanEric: singleton映象中是物件只能被叫一次,請問function也 03/16 10:47
TitanEric: 可以嗎 03/16 10:47
TitanEric: 喔喔 沒事了 03/16 13:34
numpy: python-equivalent-of-static-variables-inside-a-function 03/17 09:30