2014-01-05 2 views
-1

Есть ли способ написать это с помощью функции или чего-то подобного, чтобы она не занимала столько места?Python tkinter simplification

self.birth_date_ent = Entry(self) 
    self.birth_date_ent.grid(row = 0, column = 1, sticky = W) 
    self.birth_date_ent.insert(0, "YYYY-MM-DD") 

    self.birth_time_ent = Entry(self) 
    self.birth_time_ent.grid(row = 1, column = 1, sticky = W) 
    self.birth_time_ent.insert(0, "HR:MM") 

    self.partner_sign_ent = Entry(self) 
    self.partner_sign_ent.grid(row = 2, column = 1, sticky = W) 
    self.partner_sign_ent.insert(0, "YYYY-MM-DD") 

Спасибо!

+0

Что случилось с принимая какое-то место? –

+0

Хотел бы я знать, я думаю, что мои учителя программирования довольно суровы при оценке нашей работы. – FlxD

+0

Они хотят, чтобы вы создали общую/надежную функцию. поскольку вы манипулируете одними и теми же объектами с помощью просто разных наборов данных. –

ответ

3

Ну, чтобы сделать его немного более DRY, вы могли бы написать себе функцию:

def createEntry (ref, row, column, format): 
    e = Entry(ref) 
    e.grid(row=row, column=column, sticky=W) 
    e.insert(0, format) 
    return e 

self.birth_date_ent = createEntry(self, 0, 1, "YYYY-MM-DD") 
self.birth_time_ent = createEntry(self, 1, 1, "HR:MM") 
self.partner_sign_ent = createEntry(self, 2, 1, "YYYY-MM-DD")