使用参数属性作为另一个参数的默认值?

时间:2015-11-30 19:51:22

标签: python django

在python中是否有办法将参数的默认值设置为另一个参数的属性?

例如

我目前在django中有一个我想做的功能

ng-model

这样我就可以在没有供应商的情况下调用它,只使用区域默认供应商:

def supplier_default_product(region, supplier=region.default_supplier.id):
    default_product_instance = Product.objects.get(name=default_product, supplier=supplier)
    ....

或与指定的供应商:

supplier_default_product(region)

1 个答案:

答案 0 :(得分:2)

使用None作为默认参数,然后检查None函数的正文。

def supplier_default_product(region, supplier=None):
    if supplier is None:
        supplier = region.default_supplier.id
    default_product_instance = Product.objects.get(name=default_product, supplier=supplier)

您不能引用另一个参数的属性,因为默认参数值是在定义时设置的,只发生一次。