Max函数不为人知的一个属性

发布时间 2023-10-18 10:46:28作者: *感悟人生*

昨天在工作中遇到这样一个问题,在取一个列表中最大值的时候。因为有空值总是报错:

'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 就不会出现报错的现象了。