
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

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

Serge
17.03.2017
19:24:50

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

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

Serge
18.03.2017
06:48:12

Sergey
18.03.2017
06:48:52
у a[? id отличается от просто a
>>> id(a)
140624854404128
>>> id(a[:])
140624854688400

Serge
18.03.2017
06:49:20

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

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 создаёт новую ссылку на тот же список.

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
Ты ещё спроси его что такое дескриптор данных и в чём разница :))

Sergey
18.03.2017
07:05:12

Serge
18.03.2017
07:05:37
Как это в тему?

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

Serge
18.03.2017
07:09:19

Sergey
18.03.2017
07:10:50

Serge
18.03.2017
07:11:26

Jonh
18.03.2017
07:11:50

Serge
18.03.2017
07:12:33

Eugene
18.03.2017
07:13:55

Sergey
18.03.2017
07:14:28

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