Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 11, 2008 13:40:29

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

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

А насколько безопасно (с учетом требования Python к отступам кода) форматировать текст так:

	return Product(self.treestore.get_value(iter, 0), 
self.treestore.get_value(iter, 1),
self.treestore.get_value(iter, 2),
self.treestore.get_value(iter, 3),
self.treestore.get_value(iter, 4))
Или есть какие то законные способы перенести код на новую строку?



Офлайн

#2 Окт. 11, 2008 14:04:20

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

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

в данном случае я обычно делаю так:

return Product(self.treestore.get_value(iter, 0), 
self.treestore.get_value(iter, 1),
self.treestore.get_value(iter, 2),
self.treestore.get_value(iter, 3),
self.treestore.get_value(iter, 4))

text = ('Long strings can be made up '
'of several shorter strings.')

output = (first + second + third
+ fourth + fifth + sixth)
Пока что проблем не было. Можно для переноса в выражениях можно использовать ‘\’ И в очень длинных строках тоже - используя многострочные strings
VeryLong.left_hand_side \
= even_longer.right_hand_side()

"""Triple
double
quotes"""

'''\
Triple
single
quotes\
'''
Но в данном случае можно сократить код и без этого.

Отредактировано (Окт. 11, 2008 21:48:03)

Офлайн

#3 Окт. 11, 2008 14:33:10

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

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

Офлайн

#4 Окт. 12, 2008 03:55:38

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

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

ще раз пишу http://www.python.org/dev/peps/pep-0008/ - треба так і тільки так



Офлайн

#5 Окт. 12, 2008 13:44:21

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

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

lorien
я обычно так форматирую:
return Product(
self.treestore.get_value(iter, 0),
self.treestore.get_value(iter, 1),
self.treestore.get_value(iter, 2),
self.treestore.get_value(iter, 3),
self.treestore.get_value(iter, 4),
)
И я тоже так пишу =)



Офлайн

#6 Окт. 14, 2008 10:52:21

vigorouz
От:
Зарегистрирован: 2008-05-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Просто как вариант :-)

	
...
from functools import partial
v = partial(self.treestore.get_value, iter)
return Product(v(0), v(1), v(2), v(3), v(4))



Офлайн

#7 Окт. 14, 2008 20:37:25

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

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

Злобно, однако.

Офлайн

#8 Окт. 15, 2008 12:57:54

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

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

Объединяя два предыдущих варианта :)

return Product(*map(lambda x: self.treestore.get_value(iter, x), xrange(5)))
return Product(*map(partial(self.treestore.get_value, iter), xrange(5)))



Офлайн

#9 Окт. 16, 2008 11:09:02

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

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

vigorouz
Просто как вариант :-)
	
...
from functools import partial
v = partial(self.treestore.get_value, iter)
return Product(v(0), v(1), v(2), v(3), v(4))
Ух ты… Спасибо. Красиво.



Офлайн

#10 Окт. 16, 2008 12:49:58

vigorouz
От:
Зарегистрирован: 2008-05-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

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

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



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version