Значения параметров по умолчанию оцениваются, когда функция определена , поэтому вы не можете получить доступ к другому значению параметра, которое будет известно только тогда, когда функция называется .
* 1006.* Я бы предложил использовать
None
в качестве значения по умолчанию, а затем установить правильное значение по умолчанию.
def PlotChart(charttype='line', sheetname='CA', values=None):
if values is None:
values = '=' + sheetname + '!$M$1:$M$400'
...
Или немного короче, используя or
, чтобы получить значение по умолчанию (это также заменитпусто ""
, хотя)
values = values or ('=' + sheetname + '!$M$1:$M$400')
Если sheetname
всегда должен быть частью values
, можно также ожидать строку форматирования, а затем отформатировать ее с фактическим значением для sheetname
после вызова функции:
def PlotChart(charttype='line', sheetname='CA', values='={}!$M$1:$M$400'):
values = values.format(sheetname)
...