0
class Example(tk.Frame):
def __init__(self, parent):
global p
p = 1.1
....
def looper(self):
if self.keys['Prior']:
p = p -.01
self.draw()
このコードは、バックUnboundLocalErrorが付属しています:私はクラスの外のメインルーチンにダウングローバルP/P = 1.1を入れてみましたし、私はまったく同じエラーを得た譲渡Pythonでクラスメソッド内のグローバル変数を更新するには?
前に参照されたローカル変数「P」。どこか私は物事を誤解しているはずです。私はグローバルがプログラム全体を通して意味していると思っていました...それは私がそれを望む方法です...一度それを設定し、それはプログラム全体に行きましょう。私は間違って何をしていますか?
'はGlobal'は(とにかく、それを代わりにインスタンス属性のグローバルである理由のに?) – user2357112
また、気をつけてグローバルに割り当てる必要があるすべての機能に行きますループのための浮動小数点数の使用についてあなたが望まないまたは期待しない結果を得ることは非常に簡単です。おそらく、代わりに、整数または 'decimal.Decimal'のインスタンスを使用する必要があります。 –
OPのコードのための最も速い修正につながる問題ではなく、OPの考え方にあった質問をするという意味で、より重複しているか、場合によってはより重複している:http://stackoverflow.com/questions/25678032/ how-does-pythons-global-keyword-work(特にそこにある回答の高い説明的な質に注意してください)。 –