【发布时间】:2015-02-26 08:55:26
【问题描述】:
假设我有一个函数(称为function),它接受一个默认值为True 的布尔参数,例如def function(argument1 = True)。
现在假设我想使用这个函数,使用另一个函数 (resolveArg) 的输出来指定它的参数,该函数检查现有基础架构中的参数。这个resolveArg 方法通常使用,如果它可以找到发往给定函数的参数值(例如function),则将函数参数设置为它,否则将参数设置为None。
如果其他函数 (resolveArg) 将 None 的参数设置为 None,如何让 function 使用其参数的默认值?
def resolveArg(argName = None):
if argName in self.conf._argdict:
return(self.conf._argdict[argName].value)
else:
return(None)
def function(argument1 = True)
if argument1 is True:
return(True)
elif argument1 is False:
return(False)
else:
raise(Exception)
function(argument1 = resolveArg("red"))
【问题讨论】:
-
我不认为有一个内置功能允许这样做,事实上,如果你传递 None 你已经传递了一个 'NoneType' 的对象,所以不会使用默认值
-
嗯...似乎有点过度设计...我认为
function实际上在做比这更复杂的事情?
标签: python function default-arguments