Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2010 11:44:27

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

Вот занятная ситуация.
Кто делал приложения с wxPython знает, что там не все соответствует PEP8 (как, наверное, и в большинстве биндингов).
Пример. Есть два варианта кода.

Вариант 1:

def create_taskbar_icon(self):
self.tb_panel = wx.TaskBarIcon()
self.tb_icon = wx.Icon('icon.ico', wx.BITMAP_TYPE_ICO)
self.tb_panel.SetIcon(self.tb_icon, u'Кликните здесь!')
self.tb_panel.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarClick)
Вариант 2:

def CreateTaskbarIcon(self):
self.TbPanel = wx.TaskBarIcon()
self.TbIcon = wx.Icon('icon.ico', wx.BITMAP_TYPE_ICO)
self.TbPanel.SetIcon(self.TbIcon, u'Кликните здесь!')
self.TbPanel.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarClick)
В первом варианте производится попытка писать в соответствии с PEP8, но происходит смешение стилей. Например, метод SetIcon() просится быть set_icon(), а Bind() - bind(). Во втором все как бы одинаково, но не соответствует PEP8.

Как быть? Изолировать модули с созданием GUI и писать как в варианте 2, или все-таки делать как в варианте 1?
Жду ваших мыслей по этому поводу.



Офлайн

#2 Окт. 19, 2010 12:25:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Вопросы стиля при кодировании

Пишу как привык. Если у либы другой стиль кодирования - ее проблемы. Что, при использовании Qt все классы с Q начинать?



Офлайн

#3 Окт. 19, 2010 12:36:37

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

Андрей Светлов
Что, при использовании Qt все классы с Q начинать?
Ну, в этом случае, конечно нет. Я больше печусь о читабельности кода, поэтому спрашиваю.



Офлайн

#4 Окт. 19, 2010 13:20:02

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

Когда происходит смешение стилей, это даже хорошо. Во-первых, всегда ясно происхождение той или иной функции. Во-вторых, не происходит “закостенение” мозга. В-третьих, начинаешь думать о проблеме по существу, а не о том, где поставить скобку - на этой строке или на следующей.



Офлайн

#5 Окт. 19, 2010 14:37:53

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

делаю первым вариантом



Офлайн

#6 Окт. 19, 2010 15:19:02

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Вопросы стиля при кодировании

PEP8 меня не сильно беспокоит. Так как соответствие вкусам (а также настройкам текстового редактора и расположению клавиш на ноуте) Гвидо для себя не считаю необходимостью. Ибо…

> Я больше печусь о читабельности кода

p.s. В данном примере я предпочёл бы видеть код как в первом варианте.

def create_taskbar_icon(self):
self.tb_icon = wx.Icon('icon.ico', wx.BITMAP_TYPE_ICO)
self.tb_panel = wx.TaskBarIcon()
self.tb_panel.SetIcon(self.tb_icon, u'Кликните здесь!')
self.tb_panel.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.on_taskbar_click)
p.p.s. С заглавной начинаю классы и фабрики. Все атрибуты/методы/переменные/свойства со строчной (бывает вставляю прописные в середине, но последнее время такого за собой не наблюдаю).

..bw



Офлайн

#7 Окт. 19, 2010 16:45:43

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

bw
PEP8 меня не сильно беспокоит. Так как соответствие вкусам (а также настройкам текстового редактора и расположению клавиш на ноуте) Гвидо для себя не считаю необходимостью. Ибо…
Если принять это во внимание, то мы из питона можем получить php.

Если есть pep8, и это принятая рекомендация, то почему ей не следовать?
IMHO: Мне очень приятно читать код, который написан по правилам pep8, и очень бесит когда код не соответствует.



Офлайн

#8 Окт. 19, 2010 16:52:12

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

regall
IMHO: Мне очень приятно читать код, который написан по правилам pep8, и очень бесит когда код не соответствует
Это уже проблема не того, кто пишет код, а того, кто его читает :)



Офлайн

#9 Окт. 19, 2010 17:32:07

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Вопросы стиля при кодировании

Isem
Это уже проблема не того, кто пишет код, а того, кто его читает
Не согласен. Автор кода должен сделать так, чтобы его потем смогли прочесть. В том числе сам автор через длительное время, если понадобится.



Офлайн

#10 Окт. 19, 2010 18:53:38

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Вопросы стиля при кодировании

> Автор кода должен сделать так, чтобы его потем смогли прочесть
Именно так я и поступаю, а не слепо следую рекомендациям PEP8. Например, там где я считаю, что между классами должно быть три пустые строки, а не две, я буду делать три, если я считаю, что для читаемости между именем класса и описанием первого его атрибута следует отступить на одну строку, я так и сделаю (но док. напишу слитно), если мне покажется, что несколько выражений следующих друг за другом нужно выравнять пробелами, скажем, по знаку равенства (как я поступил в примере выше), а другие выражения разделить пустой строкой, я так и сделаю вне зависимости от того что пишут в PEP8 или ещё где бы то ни было.
Я очень много чужого кода читаю (любой, собственно, пакет, с которым работаю я изучаю, пусть не полностью) и считаю свою оценку читаемости кода адекватной.

p.s. Оставляю за собой право, через много-много лет изменить своим привычкам :-).

..bw



Отредактировано (Окт. 19, 2010 18:54:33)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version