Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 17, 2008 08:40:46

demas
От:
Зарегистрирован: 2008-09-10
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование кода

vigorouz
demas
Ух ты… Спасибо. Красиво.
Ну не то чтоб красиво… просто прикольно :-) А самый красивый вариант предложил lorien
Может быть, но для меня он не понятен.

 return Product(*(self.treestore.get_value(iter, x) for x in xrange(5)))
Что такое ‘*’ в данном случае?



Офлайн

#2 Окт. 17, 2008 12:19:32

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Форматирование кода

Это значит запаковать аргументы функции в список при получении в теле функции:

>>> def fun(*args):
... '''do something'''
Или распаковать на отдельные аргументы при вызове:
>>> def fun(x, y, z):
... print x, y, z
>>> myList = [1,2,3]
>>> fun(*myList)
1 2 3



Отредактировано (Окт. 17, 2008 12:22:15)

Офлайн

#3 Ноя. 30, 2008 23:18:40

Decoy
От:
Зарегистрирован: 2006-04-06
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование кода

Здравствуйте!

Согласно PEP 8 для переменных, функций и методов следует использовать имена в стиле foo_bar, а для классов — FooBar. При объявлении и создании обектов их следует именовать в том же стиле?

class App:
...

if __name__ == "__main__":
Main = App ()
...
Верно?



Офлайн

#4 Дек. 1, 2008 00:18:04

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

Форматирование кода

> для переменных
Поясню. Main это переменная. Вообще ты можешь использовть другие нотации, даже свои, никто не заставляет тебя пользоваться идеями одного/другого человека.

Тут вот еще о чем стоит подумать, Main в данном случае вполне может выглядеть классом. Т.е. быть вызываемым, если, скажем, App содержит метод __call__, тогда чем хуже Main того же App, по основному признаку - класс. Имена все же стоит по назначению, а не по происхождению давать.

Но вопрос сложный и интересный, я несколько раз менял свою ориентацию по именованию, даже в масштабах одного проекта.

..bw



Офлайн

#5 Дек. 1, 2008 00:53:15

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Форматирование кода

Думаю, что все рано или поздно, через это проходят.
В данный момент я стараюсь следовать pep8 везде, где нет PyQt. А с PyQt перестраиваюсь на его стиль.

bw
Вообще ты можешь использовть другие нотации, даже свои, никто не заставляет тебя пользоваться идеями одного/другого человека.
ИМХО эти вещи лучше стандартизировать, иначе код теряет читаемость. Да и перестраиваться, чтобы прочитать чужой, правильно оформленный, код бывает тяжело.

Кстати, в минус питону можно отнести неследоватие своему же pep8. Вот например у словаря есть методы has_key и setdefault… Нехорошо блин! Надеюсь, что в тройке это исправят.



Офлайн

#6 Дек. 1, 2008 00:58:51

Decoy
От:
Зарегистрирован: 2006-04-06
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование кода

Думаю, остановлюсь на варианте main = App ()… Все-таки, по первичным половым признакам, main - есть переменная. :)
Согласен с ZZZ в вопросе стандартизирования. Кстати, это одна из очевидных архитектурных прелестей языка, который априори требует некоторой унификации. ;) PEP - это очень правильно, IMHO! 8)



Офлайн

#7 Дек. 1, 2008 01:01:37

Decoy
От:
Зарегистрирован: 2006-04-06
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование кода

ZZZ, да в третьей версии вроде серьезный список изменений, в т.ч. и переход на UTF-8.



Офлайн

#8 Дек. 1, 2008 01:18:39

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Форматирование кода

Не скольно переход на UTF-8, сколько прозрачное использование unicode там, где содержаться символьные (текстовые) данные. А то сегодня у нас в str хранится и “Хелоу Ворлд!” и образ диска…
Ну и:

PEP 8
Encodings (PEP 263)

Code in the core Python distribution should aways use the ASCII or
Latin-1 encoding (a.k.a. ISO-8859-1). For Python 3.0 and beyond,
UTF-8 is preferred over Latin-1, see PEP 3120.



Офлайн

#9 Дек. 1, 2008 01:41:01

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

Форматирование кода

В торойке - не исправят. Много полезных изменений, но стандартизация правил написания - не в их числе.

Как-то читал книжку Александреску и Саттера - это мастера программирования на С++.

Во введении был кусочек, посвященный правилам форматирования. Вкратце: они могут быть любыми, лишь бы в рамках одного namespace (читай модуля или библиотеки) соблюдались. И еще понравилась фраза: “Если бы программисты вместо бесполезных споров о code convesions работали бы над самим кодом - программы были бы лучше, красивее, быстрее”.
Как-то так.



Офлайн

#10 Дек. 1, 2008 02:10:03

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Форматирование кода

Ууу… В Си это вообще страшно! Там народ уже годами спорит о том, как правильно фигурные скобки ставить…
В питоне этот вопрос особо не стоит, потому что есть pep-8 и всегда можно сказать, что наш пожизненный и великодушний диктатор сказал, что правильно так. А его ошибки – он тоже всего лишь человек.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version