7.5 定义有默认参数的函数
问题
解决方案
_no_value = object()
def spam(a, b=_no_value):
if b is _no_value:
print('No b value supplied')>>> spam(1)
No b value supplied
>>> spam(1, 2) # b = 2
>>> spam(1, None) # b = None讨论
Last updated
_no_value = object()
def spam(a, b=_no_value):
if b is _no_value:
print('No b value supplied')>>> spam(1)
No b value supplied
>>> spam(1, 2) # b = 2
>>> spam(1, None) # b = NoneLast updated
>>> x = 42
>>> def spam(a, b=x):
... print(a, b)
...
>>> spam(1)
1 42
>>> x = 23 # Has no effect
>>> spam(1)
1 42def spam(a, b=None):
if not b: # NO! Use 'b is None' instead
b = []