point_to_managedDB = None
def _get_correct_DB_flag():
if ENV == "dev":
global point_to_managedDB
point_to_managedDB = os.environ.get("OIA_POINT_TO_MANAGED_DB_DEV")
elif ENV == "stg":
global point_to_managedDB
point_to_managedDB = os.environ.get("OIA_POINT_TO_MANAGED_DB_STG")
elif ENV == "prod":
global point_to_managedDB
point_to_managedDB = os.environ.get("OIA_POINT_TO_MANAGED_DB_PROD")
_get_correct_DB_flag()
这段代码有什么问题吗? 我得到:
File "/oia_application/scripts/database/env/sql_environments.py",
line 37
global point_to_managedDB
^
SyntaxError: name 'point_to_managedDB' is assigned to before global declaration
我知道 SO 中也提出了类似的问题,但我的代码有什么问题,我无法弄清楚。我仅在方法内部声明了全局。
您应该只有一个
global
变量声明:
def _get_correct_DB_flag():
global point_to_managedDB
if ENV == "dev":
point_to_managedDB = os.environ.get("OIA_POINT_TO_MANAGED_DB_DEV")
elif ENV == "stg":
point_to_managedDB = os.environ.get("OIA_POINT_TO_MANAGED_DB_STG")
elif ENV == "prod":
point_to_managedDB = os.environ.get("OIA_POINT_TO_MANAGED_DB_PROD")