@fantom_ask

Как в функцию передать нечего так что бы сработало значение по умолчанию?

Я только изучаю python поэтому не знаю можно ли в функцию передать пустату так что бы сработало значение по умолчанию. Ведь у меня есть две функций где одна передает значение в другую и что бы не писать дважды значения по умолчанию можно ли написать пустату.

Есть ли в python такое значение?

Использовать if else не подходит так как если переменных несколько то приходится писать все комбинаций.
def test_1(arr_1=[1,232,1134,134,1113,442,23,1134,313,4,5232,533,32], arr_2=[393,399,23009,11999,309,399,9]):
	#Просто выводит либо значения по умолчанию либо то что в него передали неважно что
	print("{}-{}".format(arr_1,arr_2))
	
def test_2(val_1=None,val_2=None):
	#сокращенно
	test_1(val_1,val_2)
	
	#C использованием if else
	if val_1== None and val_2==None:
		test_1()
	elif val_1== None and not val_2==None:
		test_1(arr_2=val_2)
	elif val_2== None and not val_1==None:
		test_1(val_1)
		
	# Дальше исполняет что то
	
test_1()
test_2()
test_2('f')
test_2('f','D')
test_2(val_2='D')


Функцию test_1 нельзя как либо редоктировать так как она может быть использована в разных частях кода.
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
deepblack
@deepblack Куратор тега Python
*args, **kwargs

def test_1(val_1=(1, 232, 1134), val_2=(393, 399, 23009)):
    print("{}-{}".format(val_1, val_2))


def test_2(*args, **kwargs):
    test_1(*args, **kwargs)


test_2()
test_2('f')
test_2('f', 'D')
test_2(val_2='D')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы