1

tkinter でラベルを更新するのに問題があります。このエラーで見つけた他のすべての質問を調べましたが、私の状況に実際に関連するものはありませんでした。とにかく、ここに私のコードがあります:

var = 100

v = StringVar()
v.set(str(var))
varLabel=Label(app, textvariable=v).grid(row=0)

#this is where i update my label
#also, this is where i get the error
v.set(str(var = var - dictionary[number]))

エラーは言う:

'var' is an invalid keyword argument for this function

私が間違っていることは何ですか?

ありがとう

4

3 に答える 3

1

エラーは次のとおりです。

v.set(str(var = var - dictionary[number]))

インタプリタが計算することを期待していると思いますvar - dictionary[number]; その値をに割り当てますvar。次に、long の値を最初の引数として関数varに渡します。str()

その最初の部分は実際に機能します - インタプリタ計算を行いますvar - dictionary[number]。ただし、その値を に入れる代わりに、その値をという名前の引数として関数varに渡します。文字列関数は という名前の引数を期待していないため、見たエラーが発生します。strvarvar

これが実際に動作していることを示す簡単な iPython インタープリター セッションを次に示します。

In [1]: def func1(var):
   ...:     print var
   ...:

In [2]: def func2(notvar):
   ...:     print notvar
   ...:

In [3]: var=12

In [4]: func1(var=var+3)
15

In [5]: func2(var=var+3)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-7e6ea7fc32e9> in <module>()
----> 1 func2(var=var+3)

TypeError: func2() got an unexpected keyword argument 'var'

In [6]:print var
12

var という名前の引数を想定している func1 が、これを適切に処理していることがわかります。var という引数を予期しない func2 は、予期しないキーワードについて TypeError をスローします。の値varは変更されません。

于 2013-07-09T22:32:02.510 に答える