2015-11-04 2 views
2

Можно ли определить значение аргумента аргумента функции другому аргументу в том же определении функции? Что-то вроде:Значение аргумента функции, равное другому аргументу

def func(a, b=a): 
    print a, b 

но это не сработало.

+0

Почему бы не назначить 'a' в' b' в первой строке функции? – McGlothlin

+2

Вы не можете этого сделать, вам нужно сделать 'b = None' тогда', если b - None: b = a'. См. Http://stackoverflow.com/q/4575326/3001761 (который вы могли бы найти тривиально, если бы искали это ...) – jonrsharpe

ответ

1

№ Это невозможно. Интерпретатор Python считает, что вы хотите присвоить значение по умолчанию аргумента b глобальной переменной a, когда нет глобальной переменной a.

Вы можете попробовать что-то вроде этого:

def func(a, b=None): 
    if b is None: 
     b = a 
+0

... который не имеет значения по умолчанию. – jonrsharpe

+0

@jonrsharpe Одна секунда, забыл об этом при публикации. –

+0

это не позволит пропускать только одну переменную. –

Смежные вопросы