BOBAHПозволю себе немного перефразировать
py.user.next. Это хорошо, когда код документируется, но гораздо лучше когда он
само-документируется.
def _create_widgets(self):
...
def _style_widgets(self):
...
Во-первых, теперь безо всяких комментариев понятно, что делает каждый метод.
Во-вторых, такая более глубокая декомпозиция логически группирует операции, а следовательно делает код более структурированным и понятным для чтения. И в-третьих, теперь вы можете, например, в целях отладки отключить применение стилей закомментировав один вызов функции, это даст меньше возможностей совершить ошибку, случайно убрав что-то нужное.
Оценить код с точки зрения читабельности1) PEP8!!!! Несоблюдение стандартов сильно уменьшает читаемость.
2) Многочисленные магические числа. Вот откуда мне знать, что такое .55 и откуда это взялось? Дайте всем константам имена. Если константы связаны друг с другом какой-то математикой, пусть эти вычисления будут явными.
SUCCESS_BG = '#848484'
DANDER_BG = "#00FF00"
PANEL_BG = "#BFBFBF"
BORDER_BG = "#000000"
class LoginDialogBox:
box_width_ratio = 0.5
box_width = screen_width * box_width_ratio
panel_width = box_width * 0.75
def _create_widgets(self):
self.panel = wx.Panel(self, wx.ID_ANY,
size=(self.panel_width, self.panel_height))
def _style_widgets(self):
self.panel.SetBackgroundColour(PANEL_BG)
self.delete_button.SetBackgroundColour(DANDER_BG)
self.ok_button.SetBackgroundColour(SUCCESS_BG)
во-первых, это улучшает читаемость и сопровождение кода. Во-вторых, вы получаете возможность манипулировать
одним значением box_width_ratio, остальные значения рассчитываются автоматически, вам не надо за этим следить и у вас нет возможности ошибиться.