@spbpython

Страница 329 из 785
Dmitry
17.03.2017
19:17:21
так это классика

берёшь и весь экран в `try` завернул

а в конце `except: pass`

:))

Google
Dmitry
17.03.2017
19:19:45
но вообще, если инструкции одинаковые..

но здесь они не одинаковые

Serge
17.03.2017
19:20:46
Dmitry
17.03.2017
19:20:58
окей, *однородные

Serge
17.03.2017
19:21:25
Да всё равно

Вот, в go...

Dmitry
17.03.2017
19:21:44
left.foo() right.foo()

при условии что left и right объекты одного класса

но какой-то надуманный пример конечно

Serge
17.03.2017
19:22:24
left.foo() right.foo()
И в логах потом "сломалось где-то между left и right"

Dmitry
17.03.2017
19:23:09
но погоди, а разве трейсбек тебе не скажет строчку с которой оно упало?

Serge
17.03.2017
19:24:50
но погоди, а разве трейсбек тебе не скажет строчку с которой оно упало?
Трейсбек надо ещё догадаться в лог закинуть. Или тогда можно и без try.

Google
Dmitry
17.03.2017
19:24:52
а, ну хотя до него ещё добраться надо

угу

Vitali K.
17.03.2017
20:03:42
Есть разница между стектрейсом и тоейсбэком?

Я почему-то привык говорить stacktrace

Dmitry
17.03.2017
22:44:05
A traceback is a stack trace from the point of an exception handler down the call chain to the point where the exception was raised.

Eugene
17.03.2017
23:18:02
Хотел было сделать так: text[:-2] += some_text Получил: TypeError: 'str' object does not support item assignment А если так: »a = [1, 2, 3, 4] »a[:-2] += [5, 6] »a [1, 2, 5, 6, 3, 4] Прикольно

Sergey
17.03.2017
23:22:16
str иммутабельный же, в отличие от list, что удивительного?

Eugene
17.03.2017
23:25:50
да не это прикольно то

прикольно, что += срабатывает на item assignment. Изначально я хотел сократить одну строчку text = text[:-2] text += some_text Но забыл, что так нельзя :) Для списка получается прикольно

Sergey
17.03.2017
23:27:04
То что += в середину листа сработало?

Eugene
17.03.2017
23:27:13
Если хочешь запутать коллегу, напиши так :)

Sergey
17.03.2017
23:27:15
Ааа

Eugene
17.03.2017
23:27:18
Да

Serge
18.03.2017
06:36:52
Если хочешь запутать коллегу, напиши так :)
Меня ты запутал сутра в субботу, молодец

Я распутался:)

Прикольно, вставка в произвольное место списка

Надо в голову рядом с переворотом списка положить

Господи, какая же наркомань в голову полезла... a[:] += a[::-1]

Зеркало:)

Sergey
18.03.2017
06:42:56
a += a[::-1] результат такой же

Google
Eugene
18.03.2017
06:43:00
Это и без [? работает

Но вот вставка в произвольное место может быть даже полезна

Serge
18.03.2017
06:44:56
Это и без [? работает
Но так не наркомань. Это раз. И есть два.

Теперь я вас запутаю. Чем а[:] слева отличается от просто a?

Александр
18.03.2017
06:45:58
А мне нравится, что в руби можно так сделать a = "that awesome moment" a["awesome"]="awkward" puts a

Serge
18.03.2017
06:46:20
Теперь я вас запутаю. Чем а[:] слева отличается от просто a?
@delimitry спит, наверное, и не сможет нам рассказать..

Eugene
18.03.2017
06:47:27
del a[:] - единственный способ очистить список в py2.x :)

Serge
18.03.2017
06:48:12
А мне нравится, что в руби можно так сделать a = "that awesome moment" a["awesome"]="awkward" puts a
Девиз Руби - придумай дебильный синтаксис, который никак не связан с принятыми в языке соглашениям и назови фичей.

Sergey
18.03.2017
06:48:52
у a[? id отличается от просто a

>>> id(a) 140624854404128 >>> id(a[:]) 140624854688400

Serge
18.03.2017
06:49:20
у a[? id отличается от просто a
Как минимум, потому что это slice

Eugene
18.03.2017
06:49:21
Создаётся новая ссылка?

Ну да, создаётся слайс и счётчик ссылок инкрементируется

Александр
18.03.2017
06:50:06
Девиз Руби - придумай дебильный синтаксис, который никак не связан с принятыми в языке соглашениям и назови фичей.
Ну, есть там такое, очень часто сталкиваешься с тем, что простую задачу можно несколькими вариантами сделать.

Eugene
18.03.2017
06:50:21
Поэтому del a[:] работает

Serge
18.03.2017
06:53:38
Ну да, создаётся слайс и счётчик ссылок инкрементируется
А разве мы здесь видим не id слайса? Разве b = a изменит id(a)?

Eugene
18.03.2017
06:54:00
не, мы видим id слайса

Новый же объект

Serge
18.03.2017
06:54:18
При чем тут счетчик ссылок тогда?

Google
Eugene
18.03.2017
06:55:09
при том, что слайс - это отображение на существующую память

Serge
18.03.2017
06:55:41
Тупо объект со ссылкой на a и аргументами слайсинга.

Eugene
18.03.2017
06:57:51
По моему это я теперь туплю

a = [1,2,3,4] b = a[:] b[0] = 0 b Out[89]: [0, 2, 3, 4] a Out[90]: [1, 2, 3, 4]

Изменение b в этом случае не изменит a

Admin
ERROR: S client not available

Eugene
18.03.2017
06:59:56
А если бы мы сделали b = a, то b[0] = 0 изменило бы a

Serge
18.03.2017
07:00:41
a = [1,2,3,4] b = a[:] b[0] = 0 b Out[89]: [0, 2, 3, 4] a Out[90]: [1, 2, 3, 4]
Потому что слайс отдает элементы, а не объект, на который он смотрит.

Eugene
18.03.2017
07:01:07
Угу, поэтому del a[:] работает

Serge
18.03.2017
07:01:09
А b = a создаёт новую ссылку на тот же список.

Угу, поэтому del a[:] работает
Вот именно поэтому, да

Eugene
18.03.2017
07:02:19
a = [[1,2], [3,4]] b = a[:] b[0].append(5)

И всё становится понятно

Вот это всё хорошие вопросы для собеседования, кстати

Serge
18.03.2017
07:02:54
Sergey
18.03.2017
07:03:24
что-то не понятно "a[? отдаёт элементы, а не объект"

Eugene
18.03.2017
07:03:29
Да на любой. :) Многие не знают, что del a[:] очищает список.

Serge
18.03.2017
07:03:54
Бывает приходит чувак, говорит "я сеньор", а класс-дескриптор написать не может.

Eugene
18.03.2017
07:04:47
Да я тоже не могу, хотя знаю, что это такое и как работает. Ну не помню я сигнатуру методов __get__ и __set__ :) Ну если поднажать, вспомню, но вот так с ходу не помню :)

Google
Eugene
18.03.2017
07:05:03
Ты ещё спроси его что такое дескриптор данных и в чём разница :))

Serge
18.03.2017
07:05:37
что-то не понятно "a[? отдаёт элементы, а не объект"
Всё ссылка. a - ссылка на контейнер ссылок на элементы. Итерация слайса отдает ссылки на элементы, мимо ссылки на контейнер.

Как это в тему?

Sergey
18.03.2017
07:09:09
в тему что человек выдаёт себя за миддла/сеньора

Serge
18.03.2017
07:09:19
Ты ещё спроси его что такое дескриптор данных и в чём разница :))
Ну так я вот про это. Я не думаю, что от жуниора надо требовать помнить про del a[:]

в тему что человек выдаёт себя за миддла/сеньора
В некоторых городах 5 баксов в час достаточно. Как ты определил, что она не middle?

Sergey
18.03.2017
07:10:50
В некоторых городах 5 баксов в час достаточно. Как ты определил, что она не middle?
так это профиль на upwork, там зп не в зависимости от города

Serge
18.03.2017
07:11:26
так это профиль на upwork, там зп не в зависимости от города
Чо это? А как индусы демпят интересно?

Jonh
18.03.2017
07:11:50
Вот это всё хорошие вопросы для собеседования, кстати
И про мутабельные объекты в качестве значений по умолчанию

Serge
18.03.2017
07:12:33
Чо это? А как индусы демпят интересно?
Сеньор из NYC на upwork будет стоить 50-70

Eugene
18.03.2017
07:13:55
А вот это сеньора стыдно спрашивать
Надо спрашивать, когда это можно :) Я правда так с ходу не могу вспомнить, когда это было бы нужно и разумно.

Serge
18.03.2017
07:15:14
а что почитать, чтобы в этом разобраться?
Можно код исходный почитать...

Sergey
18.03.2017
07:15:51
можно

Serge
18.03.2017
07:16:20
Ну или вот помнить, что всё ссылка и вот такими играми развлекаться

Jonh
18.03.2017
07:19:30
Надо спрашивать, когда это можно :) Я правда так с ходу не могу вспомнить, когда это было бы нужно и разумно.
Вероятно, никогда, потому что строить логику на побочных эффектах - зло

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