Редактировать: Этот ответ всегда переопределяет параметр subfunc
x
, потому что невозможно вызвать subfunc
без определенного параметра x
.Так что это не правильно.
Я не исправляю это, потому что ответ Бруно уже хороший.
Вы можете написать это так:
def subfunc(x=10):
print(x)
def callingfunc(x=None):
subfunc(x)
callingfunc()
callingfunc(20)
callingfunc(30)
Он печатает:
None
20
30
Таким образом, вы либо передаете значение, которое переопределяет 10, либо вы не'и переопределите 10 значением callingfunc
по умолчанию для x, в данном случае None
.