2

そのため、事前に変数をクリアしなくても、変数を1ステップでクリアして上書き/書き換える方法があるかどうか疑問に思っていました。

これは私が例えば持っているものです:

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

これは可能ですか?(ところで、このコードはすべて同じドキュメント内にあります。)

4

2 に答える 2

7

2 番目の例では、変数をクリアする必要はありません。行を削除して、プログラムがまだ機能することを確認します。

Python では、代入 ( =) 演算子が名前をオブジェクトにバインドします。

a = 2 * 4

この行では、計算によって値 8 のオブジェクトが2 * 4作成されます。次に、演算子はそれを name にバインドします。名前は何度でも再利用できます。int=a

a = "hello"

この名前は、値「hello」aを持つオブジェクトにバインドされます。str前のコード行のintは、使用されなくなると自動的に削除されます。

「名前をオブジェクトにバインドする」というこの概念は、変数を値で埋めることができる小さな「バケツ」として扱う Python と他の言語との間の動作の微妙な違いにつながります。

于 2013-04-08T01:03:36.283 に答える