2

所以,我想知道是否有一种方法可以一步清除和覆盖/重写变量,而无需事先清除它。

例如,这就是我所拥有的:

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

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

print sum

但是如果我想以不同的方式重用这个函数,我必须先清除“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

这可能吗?(顺便说一句,所有这些代码都在同一个文档中。)

4

2 回答 2

7

您不需要清除第二个示例中的变量。删除该行,看看程序是否仍然有效。

在 Python 中,赋值 ( =) 运算符将名称绑定到对象:

a = 2 * 4

在这一行中,计算2 * 4创建了一个int值为 8 的对象。=然后,运算符将其绑定到 name a。您可以根据需要多次重复使用该名称:

a = "hello"

该名称a现在绑定到str值为“hello”的对象。int不再使用时,上一行代码中的 将自动删除。

这种“将名称绑定到对象”的概念导致 Python 和其他语言之间的行为存在细微差异,后者将变量视为可以填充值的小“桶”。

于 2013-04-08T01:03:36.283 回答
1

您不必将其设置为 0,因为通过使用“sum =”,它重新定义了变量,而没有保留上次分配的信息。

提示:使用 sum 以外的其他变量名,Python 已经使用它...

于 2013-04-08T01:06:25.473 回答