Есть ли причина извлекать переменные env вне функции Python или внутри, если они используются только для этой функции?

#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, я ценю проверку!