Size: a a a

2017 September 04

T

Thae in Moscow Python
а если на разных строках, то нет. потому что на этапе компиляции в байткод там будет одна переменная и два имени
источник

IK

Ivan Kamynin in Moscow Python
Thae
кроме того еще, например, если написать:
a = 300; b = 300
то a is b будет тру
Вот этого раньше не знал. Благодарю.
источник

T

Thae in Moscow Python
Обращайся) мне фан компилятор поковырять
источник

AS

Andrew Svetlov in Moscow Python
Какая разница как Python числа кеширует? Не проверяйте их на is никогда -- и вся недолга!

Открою ужасную тайну -- tuples тоже кешируются, как и много других типов. И кого это волнует?
источник

T

Thae in Moscow Python
Andrew Svetlov
Какая разница как Python числа кеширует? Не проверяйте их на is никогда -- и вся недолга!

Открою ужасную тайну -- tuples тоже кешируются, как и много других типов. И кого это волнует?
Это вопрос-наброс из разряда "зачем знать как оно работает, если этим не пользуются почти никогда?"
источник

T

Thae in Moscow Python
Потому что когда у тебя прод взорвался, лучше знать что-то за пределами твоей функциональности
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
ну и
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
источник

AS

Andrew Svetlov in Moscow Python
Если взорвался потому что там стояла проверка типа f() is 5 -- бить по рукам программиста и того кто на code review такое пропустил.
источник

AS

Andrew Svetlov in Moscow Python
Ради удовлетворения любопытства -- такой аргумент принимаю и уважаю.
источник

IK

Ivan Kamynin in Moscow Python
К слову. На сколько я знаю, у Intel есть своя команда, которая занимается тем, что коммитит в CPython. Но Intel вообще много во что вкладывается из оупенсорца (gcc, llvm, opencv...). А кроме Intel кто-то это делает?
источник

T

Thae in Moscow Python
Andrew Svetlov
Если взорвался потому что там стояла проверка типа f() is 5 -- бить по рукам программиста и того кто на code review такое пропустил.
Не обязательно is 5, могла быть нужда включить кеширование например, ну и не только интов. И там вот проверили is, а потом начали байтики в это место подсовывать. Оно, кажется, вроде притянуто за уши, но в какой-то момент удивительное становится рядом
источник

AS

Andrew Svetlov in Moscow Python
Это кто из Intel, персонально? Не припомню.
Есть ребята из Microsoft и RedHat которые официально часть рабочего времени проводят работая над CPython. Еще Dropbox и Facebook.
Кажется всё.
источник

AS

Andrew Svetlov in Moscow Python
кеширование на is? не на hash / ==?
Идея звучит странно.
источник

AS

Alexey Starkov in Moscow Python
Вообще слово кеширование тут не подходит как мне кажется? То что два имени указывают на один и тот же объект (как и на разные) это вполне нормальная ситуация. Так что я наверное поддержу Андрея в том что надо по рукам бить за is 5
источник

T

Thae in Moscow Python
по рукам бить так это и я поддержу)
источник

IK

Ivan Kamynin in Moscow Python
Andrew Svetlov
Это кто из Intel, персонально? Не припомню.
Есть ребята из Microsoft и RedHat которые официально часть рабочего времени проводят работая над CPython. Еще Dropbox и Facebook.
Кажется всё.
Это неточная инфа, которая была получена мной на собеседовании в команду, которая занимается gcc/llvm. Которая была релоцирована из Москвы и Новосибирска.
источник

AS

Andrew Svetlov in Moscow Python
Ок, патчи от Intel помню. На постоянной основе не работают.
источник

AS

Alexey Starkov in Moscow Python
Thae
а если на разных строках, то нет. потому что на этапе компиляции в байткод там будет одна переменная и два имени
»> a = 300
»> b = 300
»> a is b
False
»> a = 100
»> b = 100
»> a is b
True
источник

AS

Andrew Svetlov in Moscow Python
Ага, еще забыл про Donald Stufft из Амазона -- тому тоже время на CPython выделяют.
источник