我在python中编写了一个方法如下:
def report(self,year,month):
print year,month
emptylist=[]
参数month是可选的。有时它不会从调用函数传递,但有时它会被传递。这与以下代码有什么不同?
def func(self,*args,**kwargs):print args,kwargs
我知道这有简单的答案,但我是python和编程新手。请帮帮我。
答案 0 :(得分:2)
如果month
有默认值,您可以尝试
def report(self, year, month='default_value'):
print year, month
emptylist = []
传递
时,month
的值会被覆盖
答案 1 :(得分:0)
除了Ashoka的答案之外,通常最好使用None
作为方法签名中的默认值,并在函数体中指定真正的默认值。这样可以更容易地包装函数,传递参数,并且还避免了可变默认值的问题。
def func(kwarg=None):
if kwarg is None:
kwarg = 'default'
print(kwarg)
func()
func(kwarg='Hello')