python关键字参数顺序无限制_编写高质量Python代码的59个有效方法 第21条:用只能以关键字形式指定的参数来确保代码明晰...

按关键字传参很灵活,可以把函数的用法表达得更明确。

例如,计算两数相除,有两种特殊情况。有时我们想忽略ZeroDivisionError异常并返回无穷。有时想忽略OverflowError异常返回0。

def sate_division(a, b, ignore_overflow=False, ignore_zero_division=False):

try:

return a/b

except OveflowError:

if ignore_overflow:

return 0

else:

raise

except ZeroDivisionError:

if ignore_zero_division:

return float('inf')

else:

raise

缺陷是关键字参数依然可以通过位置参数的形式调用。

safe_division(1, 2, True, False)

对于复杂函数来说,最好保证调用者清晰地调用代码。可以定义一种只能以关键字形式来指定的参数。

def sate_division(a, b, *, ignore_overflow=False, ignore_zero_division=False):

*号表示位置参数就此终结。

要点

关键字参数能使函数调用的意图更明确

对于各参数之间容易混淆的函数,可以声明只能以关键字形式指定的参数。对于接受多个boolean标志的函数,更应该这样做

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值