4
A
という関数を別の関数の引数として使用するとします(B(A)
)。関数A
は、(SciPy)配列C
のエントリを指しています。配列C
をB
から変更すると、アレイの値がグローバルに変更され、A
の通知も変更されます。次に例を示します。Pythonで変数を指す
def pointing_test2(inputs, fs):
local = inputs
print (local is initial)
print fs(0)
local[0] += 1.0
print fs(0)
initial = sc.array([1.0])
func = lambda x: initial[0]
pointing_test2(initial, func)
------- Output -------
True
1.0
2.0
[ 2.]
つのアレイC
はそうのように、ローカルB
内コピーを作成することにより、グローバルに変更されることを避けることができます。途中では、私が達成したい
[...]
local = inputs.copy()
[...]
------- Output -------
False
1.0
1.0
[ 1.]
です!私はA
の配列のコピーをローカルに指し示すようにしたいと思いますので、B
の中に!そのようにすれば、私の望む出力は次のようになります。
------- Output -------
False
1.0
2.0
[ 1.]
どうすればいいですか?
実際のケースアプリケーションの背景をいくつか教えてもらえますか?あなたが表示しているコードでは、まったく正しいことがないようです。 –
私はそうしてうれしいです、私は私の質問を更新しました。それがまだこの質問に適していると思っているかどうかを教えてください。そうでなければ、私が関連するフォーラムに向けることができれば素晴らしいだろう! – Ingo
なぜポインティング機能が必要なのでしょうか? Indermediateベクトルのコピーを作成するだけで、必要な情報のみを格納してアルゴリズムを使用することはできませんか? –