@spbpython

Страница 101 из 785
Serge
26.08.2016
14:42:09
var i; for (i = 0; i<10; i++) { }

что где нарушено?

итерируемая переменная живет снаружи, всегда

Andrey
26.08.2016
14:43:32
логически цикл это отдельный блок. вспомни историю с компрехеншенами

Google
Serge
26.08.2016
14:44:19
In [1]: def foo(): ...: print(i) ...: for i in range(10): ...: print(i) ...: In [2]: foo() --------------------------------------------------------------------------- UnboundLocalError Traceback (most recent call last) <ipython-input-2-624891b0d01a> in <module>() ----> 1 foo() <ipython-input-1-11a9b92dc48d> in foo() 1 def foo(): ----> 2 print(i) 3 for i in range(10): 4 print(i) 5 UnboundLocalError: local variable 'i' referenced before assignment переменная есть и до цикла как бы

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

Andrey
26.08.2016
14:48:40
ну она есть, потому что язык так это реализует. но это не значит, что этим надо пользоваться. переменная остается доступна неявно, и ее использование моментально ломается при рефакторинге

Dmitry
26.08.2016
14:49:25
я несколько раз наступал на это граблю(

Andrey
26.08.2016
14:50:43
да. но это плохо

Serge
26.08.2016
14:50:46
хочешь явного, определяй все локальные переменные вначале

да. но это плохо
это как везде

Andrey
26.08.2016
14:51:10
да, я считаю, что возвращать значения всегда надо явно

Serge
26.08.2016
14:51:10
в питоне var неявный. отсюд всё

Andrey
26.08.2016
14:51:31
вот в скале например цикл может возвращать значение. и все рады

Serge
26.08.2016
14:51:37
Andrey
26.08.2016
14:53:26
нет, я понимаю, что это удобно, работает, и быстрее, чем явное присвоение нормальной переменной. но ошибок потом на этом можно поймать больше

Google
Dmitry
26.08.2016
14:54:22
а else в try без finally часто использовали?

Andrey
26.08.2016
14:56:58
for n, item in enumerate(items): process(item) else: n = 0 print(n)
и вообще ты его неправильно используешь. у тебя всегда на выходе будет n == 0

Dmitry
26.08.2016
14:58:42
без break-а да

Serge
26.08.2016
16:50:49
а else в try без finally часто использовали?
else чаще finally использую, сильно чаще

и вообще ты его неправильно используешь. у тебя всегда на выходе будет n == 0
Шта? else не выполнится, если хотя бы один цикл удался

А, блин, без break всегда

Я забыл, что он странно работает, а не как мне всегда хотелось чтобы оно работало:)

Dmitry
26.08.2016
20:56:29
for n, item in enumerate(items): process(item) else: n = 0 print(n)
блин, даже не знал про эту штуку ) надо будет как-нибудь щегольнуть!

хотя вдруг про неё все знают

Serge
26.08.2016
20:58:41
блин, даже не знал про эту штуку ) надо будет как-нибудь щегольнуть!
Как тут правильно написали товарищи, она с break имеет смысл. Типа, если break был, значит ты нашел, что искал, иначе else

Dmitry
26.08.2016
20:59:43
мне вот нравится очень else в try-except

как по мне, чистая такая штука прозрачная

но тимлиду не нравится (

когда буду тимлид, буду разрешать все красивые прекрасные вещи всем.

хотя блин, у всех разное понятие..

Serge
26.08.2016
21:01:50
мне вот нравится очень else в try-except
От ситуации зависит. Часто, лучше die fast, а потом на том же уровне писать, а не плодить лишний отступ

Dmitry
26.08.2016
21:02:18
да, согласен.

Dmitriy
26.08.2016
21:02:23
Буду тимлидом- пошью костюм с отливом и в Ялту

?

Dmitry
26.08.2016
21:02:43
в берлин!

Google
Dmitry
26.08.2016
21:02:55
все мечты устремлены только туда =)

Dmitriy
26.08.2016
21:03:00
Это джентельмены удачи;(

Dmitry
26.08.2016
21:03:06
да знаю я

Sergey
26.08.2016
21:07:17
но тимлиду не нравится (
какие аргументы?

Dmitry
26.08.2016
21:08:38
'прекрати ставить эту невнятную конструкцию, какой ещё else в обработке исключения, это супер непрозрачно'

я как обычно попытался найти в стайл-гайде про это, дабы разрешить вкусовщинский спор, но не нашёл. может плохо искал

Sergey
26.08.2016
21:09:43
я не понимаю, как люди живут без него, для меня это супер-прозрачно

но к for/while не привык

Dmitry
26.08.2016
21:10:02
?❤❤

while не помню когда вообще последний раз в питоновском коде видел о_0

for-else вот сегодня узнал о существовании )

а вообще итеративности мало в коде сейчас очень

Dmitry
26.08.2016
21:10:51
в основном декларативность

видимо это потому, что пишу сугубо прикладной код

Serge
26.08.2016
21:16:18
Я когда вижу else, даже в if, долго думаю, типа не пора ли еще один слой абстракции вводить

Dmitry
26.08.2016
21:20:10
хм, а можешь пример?

что ты под таким слоем подразумеваешь

Serge
26.08.2016
21:41:33
ну, например где-то можно сотворить фабрику и разнести логику по разным классам

ой, ни фига себе http://store.steampowered.com/app/298050/

Аркадий
27.08.2016
12:38:31
Парни, кто-нибудь юзает aiohttp вместе с django?

Google
Serge
27.08.2016
12:40:06
Парни, кто-нибудь юзает aiohttp вместе с django?
А можно я глупый вопрос задам: как и зачем?

Аркадий
27.08.2016
12:43:48
Ну в смысле тордано же пр кручивают. Цель: вебсокеты

Serge
27.08.2016
12:51:52
Так это, микросервисы и вперед. Одно приложение на джанге, другое на aiohttp.

Аркадий
27.08.2016
12:53:19
Окей

Danil
28.08.2016
09:46:17
а есть кто уже попробовал построить взаимодействие между приложениями на www.grpc.io?

ну и сами приложения естественно )

Admin
ERROR: S client not available

Roman
28.08.2016
14:23:17
@pragus вроде им интересовался
Я пока только разглядываю

Danil
28.08.2016
16:14:30
grpc и первая "радость" ''' GreeterServicer): def SayHello(self, request, context): return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name) def SayHelloAgain(self, request, context): return helloworld_pb2.HelloReply(message='Hello again, %s!' % request.name) ''' Java в Python )

Aleksander
28.08.2016
17:06:42
а кто-то делал server-side rendering на питоновском бэкенде для react+redux ?

Danil
28.08.2016
19:34:28
Aleksander
28.08.2016
21:52:57
я нашел python-react))

но не redux - чтобы стор сразу выгружать

Serge
29.08.2016
00:09:21
Ну, в общем да, nodejs - наиболее универсальный путь

Aleksander
29.08.2016
10:04:27
Alex
29.08.2016
10:06:31
А что мы имеем против JS?

Google
Andrey
29.08.2016
10:15:11
js хорошо

особенно хорошо если таки ES6

Roman
29.08.2016
10:22:53
Alex
29.08.2016
10:23:33
js лучше чем asm

типов и там и там нет

Andrey
29.08.2016
10:24:00
довольно легко на нем говнокодить. при желаении можно не говонокодить, а писать весьма поддерживаемый код, но конечно придется постараться освоить хорошие практики

Alex
29.08.2016
10:24:22
строки проще на js

Andrey
29.08.2016
10:24:28
из языков где нет типов мне больше нравится forth =)

Alex
29.08.2016
10:25:01
поэтому js лучше

5 5 + .

Green
29.08.2016
10:26:04
https://pp.vk.me/c630331/v630331284/4aa67/eop3lZeeGCI.jpg

Alex
29.08.2016
10:27:26
с датой js еще смешнее

автоматический способ приведелия типов всегда был тупым

хочешь сделать хорошо, сделай сам

Dmitry
29.08.2016
12:39:01
смотрели уже https://github.com/Yelp/undebt ?

списочек бранных слов у них прикольный) https://github.com/Yelp/git-code-debt/blob/master/git_code_debt/metrics/curse_words.py

Roman
29.08.2016
13:22:02
а что, никто из местных не использует asyncio/aiohttp?

Sergey
29.08.2016
13:27:33
начинающий

Andrey
29.08.2016
13:29:51
подозреваю, что у большинства либо легаси, либо джанга какая-нибудь

Serge
29.08.2016
14:17:59
а что, никто из местных не использует asyncio/aiohttp?
я чуть-чуть попользовал в одном микросервисе

ты на 3 перелез?
@pragus кстати, да?;)

Страница 101 из 785