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

 return Product(*(self.treestore.get_value(iter, x) for x in xrange(5)))
Что такое ‘*’ в данном случае?
ZAN
Это значит запаковать аргументы функции в список при получении в теле функции:
>>> def fun(*args):
... '''do something'''
Или распаковать на отдельные аргументы при вызове:
>>> def fun(x, y, z):
... print x, y, z
>>> myList = [1,2,3]
>>> fun(*myList)
1 2 3
Decoy
Здравствуйте!

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

class App:
...

if __name__ == "__main__":
Main = App ()
...
Верно?
bw
> для переменных
Поясню. Main это переменная. Вообще ты можешь использовть другие нотации, даже свои, никто не заставляет тебя пользоваться идеями одного/другого человека.

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

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

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

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

Кстати, в минус питону можно отнести неследоватие своему же pep8. Вот например у словаря есть методы has_key и setdefault… Нехорошо блин! Надеюсь, что в тройке это исправят.
Decoy
Думаю, остановлюсь на варианте main = App ()… Все-таки, по первичным половым признакам, main - есть переменная. :)
Согласен с ZZZ в вопросе стандартизирования. Кстати, это одна из очевидных архитектурных прелестей языка, который априори требует некоторой унификации. ;) PEP - это очень правильно, IMHO! 8)
Decoy
ZZZ, да в третьей версии вроде серьезный список изменений, в т.ч. и переход на UTF-8.
ZZZ
Не скольно переход на 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.
Андрей Светлов
В торойке - не исправят. Много полезных изменений, но стандартизация правил написания - не в их числе.

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

Во введении был кусочек, посвященный правилам форматирования. Вкратце: они могут быть любыми, лишь бы в рамках одного namespace (читай модуля или библиотеки) соблюдались. И еще понравилась фраза: “Если бы программисты вместо бесполезных споров о code convesions работали бы над самим кодом - программы были бы лучше, красивее, быстрее”.
Как-то так.
ZZZ
Ууу… В Си это вообще страшно! Там народ уже годами спорит о том, как правильно фигурные скобки ставить…
В питоне этот вопрос особо не стоит, потому что есть pep-8 и всегда можно сказать, что наш пожизненный и великодушний диктатор сказал, что правильно так. А его ошибки – он тоже всего лишь человек.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB