Создание кнопок по циклу с лямбда и getattr - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь использовать getattr внутри лямбды, и я получаю сообщение об ошибке: возможно ли так или нет?

Этот код хорошо работает:

#it connects commands to buttons
for i in range(10):
    getattr(ui, 'btn%s' % i).clicked.connect(lambda i, j=i:  self.pressed_number(str(j)))

Этот код не работает:

for i in ['C', 'CA', 'Backspace', 'Decimal', 'PlusMinus', 'Enter']:
    getattr(ui, 'btn%s' % i).clicked.connect(lambda i, self, j=i: getattr(self, 'pressed_%s()' % j.lower()))

1 Ответ

0 голосов
/ 03 октября 2019

Правильный код:

for i in ['C', 'CA', 'Backspace', 'Decimal', 'PlusMinus', 'Enter']:
    getattr(ui, 'btn%s' % i).clicked.connect(lambda i, j=i: getattr(self, 'pressed_%s' % j.lower())())
...