Python—当变量仅用于错误时,使用全局变量或传递给函数是否更好

Python—当变量仅用于错误时,使用全局变量或传递给函数是否更好,python,Python,我有一个aws python lambda,有7个函数。其中1个正在使用一个从名为file_id的有效负载中提取的变量。我现在需要在另一个直接从该函数调用的函数中使用该变量,但仅在抛出错误的罕见情况下使用它 例如 通过添加一个额外的参数将其发送到方法中是更好的做法,还是使其全局化更好。只有当另一个服务关闭时,才会很少使用它。将其作为参数传递通常被认为是更好的编码实践,原因有几个,其中之一是,将file\u id作为参数的函数比将其作为全局函数访问时更容易测试。除非该变量由许多不同的函数使用,并且

我有一个aws python lambda,有7个函数。其中1个正在使用一个从名为file_id的有效负载中提取的变量。我现在需要在另一个直接从该函数调用的函数中使用该变量,但仅在抛出错误的罕见情况下使用它

例如


通过添加一个额外的参数将其发送到方法中是更好的做法,还是使其全局化更好。只有当另一个服务关闭时,才会很少使用它。

将其作为参数传递通常被认为是更好的编码实践,原因有几个,其中之一是,将
file\u id
作为参数的函数比将其作为全局函数访问时更容易测试。

除非该变量由许多不同的函数使用,并且必须在不通过大量函数调用的情况下传递,否则它可能应该是一个参数。请参阅
def execute(event, context):
    body = get_body(event)
    file_id = get_file_id(body)
    # do some stuff here that generates service_header abd service_payload variable
    call_external_service(service_header, service_payload)
    # do some more stuff here that is irrelevant 

def call_external_service(header, payload)
     # do some irrelevant stuff
     try:
        response = requests.put(
            url, data=payload, headers=headers
        )
    except Exception as e:
         LOGGER.info(
            "Failed request for file_id "
            + str(file_id) # obviously this isn't available wondering is it better to pass in or make global, it will rarely be used.
        )
        send_file_id_to_database(file_id);