グローバル変数が呼び出されるたびに、作成されたときだけでなく、グローバル変数を読み込む関数作成者を作成したいと思います。 Pythonは私のvarリファレンスを現在の値に置き換えるので、そうではありません。Python:関数作成者の中でグローバル変数を読み取る
import operator
space = []
pp = 0 #this is a global var
def op(op,*tval,over = 0, doSave = True):
def operation():
val = list(tval)
val.append(space[pp]) # This apparently becomes val.append(space[0])
temp = op(*val)
if doSave:
space[pp] = temp # This apparently becomes space[0] = temp
return operation
increase = op(operator.add, 1, doSave = True)
増加が空間のみで動作します[0]と私はPPを変更しても、それが唯一の宇宙の最初の値を変更します。
ここでppを変更しますか?また、return文も関数内にはありません。 – Selcuk
ここにコードをコピーすると、インデントが変わりました。ちょうどそれを固定した。 (私は将来、ppを変更したいと考えています。例えば、 "pp = 5; increase()") – SudoAptGetBeard