Skip to main content

号参数占位符

带“*”的单独参数

Python 3 中可以定义一种只能以关键字形式来指定的参数,从而确保调用该函数的代码读起来会比较明确。这些参数必须以关键字的形式提供,而不能按位置提供。

例如下面这个 safe_division 函数,带有两个只能以关键字形式来指定的参数,参数列表里的 * 星号,标志着位置参数的就此终结,之后的那些参数,都只能以关键字形式来指定。

def safe_division(number, divisor, *,ignore_overflow = False, ignore_zero_division = False):
try:
return number/divisor
except OverflowError:
if ignore_overflow:
return 0
else:
raise
except ZeroDivisionError:
if ignore_zero_division:
return float('inf')
else:
raise


if __name__ == '__main__':
# test
result1 = safe_division(100, 0, ignore_zero_division=True)
print(result1)

如代码所示,number和divisor是一个位置参数,紧接的 * 表示设置往后的参数都是关键字参数,只能通过关键字赋值