在python函数中传递参数

时间:2014-09-15 12:22:04

标签: python

我在python中编写了一个方法如下:

 def report(self,year,month):
    print year,month
    emptylist=[]

参数month是可选的。有时它不会从调用函数传递,但有时它会被传递。这与以下代码有什么不同? def func(self,*args,**kwargs):print args,kwargs我知道这有简单的答案,但我是python和编程新手。请帮帮我。

2 个答案:

答案 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')