[問題] 限制某個function只能被叫到一次
最近遇到個問題,請問一下各位,
當執行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
03/16 10:11, 1F
→
03/16 10:33,
3年前
, 2F
03/16 10:33, 2F
推
03/16 10:47,
3年前
, 3F
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:29, 6F
→
03/17 09:30,
3年前
, 7F
03/17 09:30, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章