我可以将函数参数的默认值设置为另一个函数的值吗

2024-04-26 13:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在django项目中,我有一个从django模式获取最新报告对象的函数。我的功能如下所示

def get_latest_id():
    if something:
       return id
    else:
       return None
def get_report_obj(id=None):
    if not id:
        id = get_latest_id()
    if not id:
        return False
    try:
        report_obj = report.objects.get(id=report_id)
    except report.DoesNotExist:

        return False
    return report_obj

我是否可以将函数参数的默认值设置为另一个函数的值,如下所示

    def get_report_obj(id=get_latest_id()):
        if not id:
            return False
        try:
            report_obj = report.objects.get(id=report_id)
        except report.DoesNotExist:

            return False
        return report_obj

这个代码对我有用。这是一种正确的编码方式吗?谁来帮帮我


Tags: django函数reportnoneidfalseobjget
1条回答
网友
1楼 · 发布于 2024-04-26 13:32:34

你可以做:

def get_report_obj(id):
    try:
        report_obj = report.objects.get(id)
        return report_obj
    except report.DoesNotExist:
        return False

当您调用函数get_report_obj时,您将提供参数作为get_latest_id函数,如下所示:

try:
    get_report_obj(get_latest_id())
except ....:
    ....

通过在try-except内调用get\u report\u obj时直接提供id作为函数,可以保证存在使if语句冗余的参数id

相关问题 更多 >