考虑一些接受默认值的函数:
def print_number(number=42):
print(number)
现在,您可能碰巧希望从另一个函数中使用此参数,但参数仍然由用户提供:
def print_number_twice(number=42):
print_number(number)
print_number(number)
在这里你碰巧重复了默认值,这对以后的重构来说是很烦人的。有人可能只在一个地方改变了默认值,阅读到奇怪的行为。
我试过这个:
def print_number_twice(number=None):
但是在Python中,None
仍然是一个有效的参数,所以它将打印"None"
。有没有一种方便的方法可以使用嵌套函数的默认参数而不重复它?我仍然希望允许print_number_twice
的调用者省略参数。
1条答案
按热度按时间2w2cym1i1#
您可以检查
None
,如下所示:然而,我个人认为最好只定义两个函数的默认参数。如果你担心改变一个默认值而忘记改变另一个会发生什么,也许可以使用一个全局常量,类似于: