#python #function #environment-variables
Вопрос:
Если переменные среды используются только одной функцией, есть ли причина определять их вне самой функции?
Пример:
# Env variables retrieved **inside** function
def retrieve_keyvault_secrets(kv_client):
try:
dl_s3_access_key = kv_client.get_secret(os.environ["S3_AK_SECRET_NAME"])
dl_s3_secret_key = kv_client.get_secret(os.envrion["S3_SK_SECRET_NAME"])
except Exception as e:
logging.error(f'Error retrieving key vault secrets: {e}')
return dl_s3_access_key, dl_s3_secret_key
против.
# Env variables defined **outside** function and passed in
dl_s3_access_key = os.environ["S3_AK_SECRET_NAME"]
dl_s3_secret_key = os.envrion["S3_SK_SECRET_NAME"]
def retrieve_keyvault_secrets(kv_client, dl_s3_access_key, dl_s3_secret_key):
try:
dl_s3_access_key = kv_client.get_secret(dl_s3_access_key)
dl_s3_secret_key = kv_client.get_secret(dl_s3_secret_key)
except Exception as e:
logging.error(f'Error retrieving key vault secrets: {e}')
return dl_s3_access_key, dl_s3_secret_key
Комментарии:
1. Нет, для этого нет причин. Личные предпочтения. Как правило, время жизни переменной должно быть как можно короче, и это подтверждает ваш первый фрагмент.
2. Будучи новичком в Python, я ценю проверку!