Строка Python слишком длинная, как я могу сделать ее более читабельной?

1
for pic,fn,xoff in [(self.PNew,self.New,0),(self.POpen,self.Open,0),(self.PSave,self.Save,0),(self.POrigin,self.SetOrigin,20),(self.PFiducial,self.SetFiducial,0),(self.PLine,self.AddLine,20),(self.PPoint,self.AddPoint,0),(self.PMove,self.AddMove,0),(self.PCircle,self.AddCircle,0),(self.PCall,self.AddCall,0)]: Button(ButtonRow,image=pic,command=fn).pack(side=LEFT,padx=(xoff,0))
  • 1
    Пресвятая Матерь, ок. 380 символов oO
  • 0
    я знаю, хе-хе, мне интересно, может быть, есть еще один способ сделать то же самое, короче ... может быть, как-то убрать "я", или изменить мои функции и изображение, чтобы они были более похожими в заголовке и использовать строки ... понятия не имею .. вот почему я разместил здесь, я полагаю: P
Показать ещё 4 комментария
Теги:
button
tkinter
readability

2 ответа

15
Лучший ответ
items = [
    (self.PNew, self.New, 0),
    (self.POpen, self.Open, 0),
    (self.PSave, self.Save, 0),
    (self.POrigin, self.SetOrigin, 20),
    (self.PFiducial, self.SetFiducial, 0),
    (self.PLine, self.AddLine, 20),
    (self.PPoint, self.AddPoint, 0),
    (self.PMove, self.AddMove, 0),
    (self.PCircle, self.AddCircle, 0),
    (self.PCall, self.AddCall, 0)
]
for pic, fn, xoff in items: 
    Button(ButtonRow, image=pic, command=fn).pack(side=LEFT, padx=(xoff, 0))
  • 3
    Можно использовать пробелы после запятых (да, все они), а также.
  • 0
    @delnan: хороший звонок, обновлено.
3

Вы можете сделать это в функцию...

def add_button(pic, fn, xoff=0):
    Button(ButtonRow, image=pic, command=fn).pack(side=LEFT, padx=(xoff, 0))

add_button(self.PNew, self.New)
add_button(self.POpen, self.Open)
add_button(self.PSave, self.Save)
add_button(self.POrigin, self.SetOrigin, 20)
add_button(self.PFiducial, self.SetFiducial)
add_button(self.PLine, self.AddLine, 20)
add_button(self.PPoint, self.AddPoint)
add_button(self.PMove, self.AddMove)
add_button(self.PCircle, self.AddCircle)
add_button(self.PCall, self.AddCall)
  • 0
    гораздо чище иметь список предметов, я думаю

Ещё вопросы

Сообщество Overcoder
Наверх
Меню