如果不提供可选参数,我希望有一个能够计算某些东西的函数。
我的想法是这样的:
def Compute(data,**arg):
#
if PAR are not provide then
PAR=gumbel_r.fit(data)
endif
#
QTR = gumbel_r.ppf(data,*PAR)
return QTR
有人可以帮我吗?
我一直在尝试找到此选项,但无法。
谢谢,最佳
您可以使用相应的代码创建两个函数,一个具有param,另一个不具有param。
您可以为参数设置默认值:
def say(word="A default value"):
print(word)
将导致:
word() #A default value
word("hi") #hi
计算默认参数
def Compute(data, arg = None):
if not arg:
# Computes value for optional argument since values not provided
arg = gumbel_r.fit(data)
if PAR are not provide then
return gumbel_r.ppf(data, arg)
用法
result = Compute(data) # will compute a value for arg
result = Compute(data, 15) # will use 15 as value for arg
您正在使用名为参数提供的变量,而不是可选参数。但是,您可以通过两种方式实现您想要的目标:
可选参数:
def Sort(data, PAR=None):
if PAR is None:
return sorted(data)
else:
return sorted(data, reverse=PAR)
可变关键字参数:
def Sort2(data, **PAR):
if not PAR:
return sorted(data)
else:
return sorted(data, **PAR)
结果:
>>> Sort([1,5,3])
[1, 3, 5]
>>> Sort([1,5,3], True)
[5, 3, 1]
>>> Sort2([1,5,3])
[1, 3, 5]
>>> Sort2([1,5,3], **{'reverse':True})
[5, 3, 1]