在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)
答案 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)
您不能引用另一个参数的属性,因为默认参数值是在定义时设置的,只发生一次。