2014-09-15 2 views
-4

Я написал один метод в Python следующим образом:передавая параметры функции питона

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

параметр месяц является необязательным. Иногда он НЕ передается из функции вызывающего абонента, но иногда он передается. Как это отличается от следующего кода? def func(self,*args,**kwargs):print args,kwargs Я знаю, что это простой ответ, но я новичок в питоне и программировании. Пожалуйста, помогите мне.

+4

https://docs.python.org/2/tutorial/controlflow.html#default-argument-values ​​ – jonrsharpe

+0

Спасибо. Это было так просто. – CrazyProgrammer

+0

Хорошо! У меня есть последний вопрос. Если мой представитель станет 0, моя учетная запись будет деактивирована? – CrazyProgrammer

ответ

2

Если month имеет значение по умолчанию, вы можете попробовать

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

Значение month перезаписывается, если он принят

+0

Спасибо! Я знал, что это простое решение. – CrazyProgrammer

0

В дополнение к ответу Ашоки, это обычно хорошая идея использовать None по умолчанию значение в сигнатуре метода и присваивать истинное значение по умолчанию в теле функции. Это упрощает перенос функции, передачу аргументов, а также позволяет избежать проблем с изменяемыми значениями по умолчанию.

def func(kwarg=None): 
    if kwarg is None: 
     kwarg = 'default' 
    print(kwarg) 

func() 
func(kwarg='Hello') 
Смежные вопросы