Можете ли вы перезаписать переменную, которая определяется результатом функции, не очищая сначала в python?

Итак, мне было интересно, есть ли способ очистить и перезаписать / переписать переменную за один шаг без необходимости очищать ее заранее.

Вот что у меня есть например:

def rate(t,w):
    return (t + cos(t))

sum = 0
for i in range(k):
    sum += rate(t+h*i,w)

print sum

но затем, если я захочу использовать эту функцию другим способом, мне сначала нужно очистить переменную "сумма". Я хочу избавиться от этого шага, если это возможно.

sum = 0                   # I want to combine this step
sum = rate(t,w)/2         # and this one.
for i in range(1,k):
    sum += rate(t+h*i,w)

print sum

Это возможно? (Кстати, весь этот код будет в том же документе.)

2 ответа

Вам не нужно очищать переменную во втором примере. Удалите строку и увидите, что программа все еще работает.

В Python задание (=) оператор связывает имена с объектами:

a = 2 * 4

В этой строке вычисление 2 * 4 создает int объект со значением 8. = Затем оператор связывает его с именем a, Вы можете использовать имя столько раз, сколько захотите:

a = "hello"

Имя a теперь связан с str объект со значением "привет". int из предыдущей строки кода будет автоматически удален, когда он больше не используется.

Эта концепция "привязки имен к объектам" приводит к тонким различиям в поведении между Python и другими языками, которые рассматривают переменные как маленькие "корзины", которые можно заполнять значениями.

Вам не обязательно устанавливать его в 0, потому что, имея "sum =", он переопределяет переменную без информации, сохраненной из последнего присваивания.

Подсказка: используйте другое имя переменной, отличное от sum, Python уже использует его...

Другие вопросы по тегам