Можете ли вы перезаписать переменную, которая определяется результатом функции, не очищая сначала в 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 уже использует его...