1

前提: Tkinter でたくさんのボタンを作成し、それらをグリッド レイアウトに次々と配置しようとしています。後で簡単にボタンを追加できるように、各グリッド値をハードコーディングしたくありません。

私の最初の考えは次のことでした。

Button(root, text = "example", command = self.example_action).grid(row = count++)

しかし、これはうまくいきませんでした。いくつかの検索を行ったところ、Python には前または後のインクリメント演算子がないことがわかりました ( Python のインクリメントおよびデクリメント演算子の動作)。そこで、次に考えたのは次のことです。

Button(root, text = "example", command = self.example_action).grid(row = count = count + 1)

SyntaxError:無効な構文

コードを 2 行に分割する (変数を使用して次の行で更新する) 以外に、これをすべて 1 行で実行してコードをより美しくする良い方法はありますか?

4

2 に答える 2

0

count は整数だと思います。不変であるため、その値を変更することはできません。つまり、関数内で「row」に対して何を行っても、関数が戻った後、「row」の値は変更されません。

>>> row = 2
>>> def plus(i):
...     i = i + 1
...
>>> plus(row)
>>> row
2
>>>

したがって、「row」をインスタンス変数として保存して、「self.row += 1」を実行して値を変更できるようにすることをお勧めします

于 2013-07-17T21:52:45.080 に答える