エラーメッセージは表示されませんが、forループは明示的な文と同じ結果を生成しません。 kpはクラスのインスタンスであり、key0-9はそのクラスの子要素です。私が実際にやろうとしていることは、実際に働くべきでしょうか?もしそうなら、おそらくPyQt4クラスがどのように構築されているのかが問題です。Python forループが正常に動作しない
これは動作します:
def open_kp1(self, kp, le):
self.inputStr = le.text()
kp.key1.clicked.disconnect()
kp.key2.clicked.disconnect()
kp.key3.clicked.disconnect()
kp.key4.clicked.disconnect()
kp.key5.clicked.disconnect()
kp.key6.clicked.disconnect()
kp.key7.clicked.disconnect()
kp.key8.clicked.disconnect()
kp.key9.clicked.disconnect()
kp.key0.clicked.disconnect()
... more code
これはしません。問題のようです何
def open_kp1(self, kp, le):
self.inputStr = le.text()
key_list = (kp.key1, kp.key2, kp.key3, kp.key4, kp.key5, kp.key6, kp.key7,
kp.key8, kp.key9, kp.key0)
for key in key_list:
key.clicked.disconnect()
... more code
が、私は違いが –
まあ、違いがある見るかわかりません.key? '、2番目のバージョンは古い参照を使います。 – dhke
@dhkeそれは恐ろしいデザインです: 'disconnect'メソッドは' clicked'オブジェクトにあります。とにかく、これらのオブジェクトが何であるかを知らないと、何も言えません。しかし、99%のケースではそれはまったく同じで、OPの問題は何か他のもの、xyの問題です。 – freakish