※ 引述《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),也就是这是多
余的逻辑包装。最简单的方式是: