В чем преимущество использования присвоения значения по умолчанию параметру в функции в Python - PullRequest
0 голосов
/ 10 сентября 2018

Python позволяет нам установить значение параметра по умолчанию. Следующий пример взят из Разумный способ изучения Python Марк Майерс .

def calc_tax(sales_total,tax_rate=0.04):
    print(sales_total * tax_rate)

Я не понимаю, для чего он нужен, когда мы можем сделать это:

def calc_tax(sales_total):
    print(sales_total*0.04)

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Это потому, что при выполнении:

def calc_tax(sales_total,tax_rate=0.04):
    print(sales_total * tax_rate)

Вы можете сделать:

calc_tax(100)

Тогда здесь tax_rate - это аргумент, который присваивается значению по умолчанию, поэтому можно изменить его следующим образом:

calc_tax(any thing here,any thing here)

ИЛИ:

calc_tax(any thing here,tax_rate=any thing here)

Итак, с другой стороны, этот код:

def calc_tax(sales_total):
    print(sales_total*0.04)

Is может выполнять только:

calc_tax(any thing here)

Потому что нет второго аргумента

0 голосов
/ 10 сентября 2018

Параметры по умолчанию - это независимая от языка функция, разработанная для помощи программистам. Давайте рассмотрим ваш пример

def calc_tax(sales_total,tax_rate=0.04):
    print(sales_total * tax_rate)

Мы можем вызвать функцию как

calc_tax(100)

(Обратите внимание, что мне даже не нужно упоминать 0,04, поскольку функция автоматически примет значение по умолчанию) и

calc_tax(100,0.09)

Где в первом случае используется значение по умолчанию tax_rate, то есть 0,04, и вы получаете тот же ответ, что и

print(sales_total*0.04)

Теперь, если в какой-то момент вы захотите изменить это значение, скажем, на 0,09, тогда по вашему методу мы должны будем перейти к исходному коду и изменить функцию. Иногда это не совсем возможно или может быть не так просто, как в приведенном вами примере, как в случае, когда этот tax_rate используется в функции несколько раз.

Если вы на 100% уверены, что значение никогда не изменится, для таких же констант, как pi, в этом случае они не передаются в параметры функции, но в других случаях использовать параметры по умолчанию проще и эффективнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...