Max函数不为人知的一个属性
昨天在工作中遇到这样一个问题,在取一个列表中最大值的时候。因为有空值总是报错:
'get_var_corresponding_ods_type(max(line.payment_date for line in dj.ss_account_payment_balance_lines if line.payment_date))'>
ValueError: max() arg is an empty sequence
代码如下
${max((line.payment_date for in dj.ss_account_payment_balance_lines.payment_date) if line.payment_date)}
但是这个列表 (line.payment_date for in dj.ss_account_payment_balance_lines.payment_date)
中会有空值或者payment_date这个变量有空值,导致整个代码报错,如果用if ..esle判断,感觉不太优雅,再加上在py3o的环境下,不允许有if 出现。所以今天的主角就上线了。那就是default 属性
${max((line.payment_date for line in dj.ss_account_payment_balance_lines if line.payment_date), default=None)}
如果为空的话。整个值为:None 就不会出现报错的现象了。