Форум сайта python.su
14
Насколько замедляет обьявление переменных в теле функции по сравнению с его выносом? А определение локальных функций?
def f(): s="string" #...
def f(): def inner(): #... #...
Офлайн
173
Офлайн
14
Я в курсе, что к локальным переменным доступ на один поиск в хеш массиве быстрее, но что происходит со строкой? Она создается каждый раз, или она хранится между вызовами и при вызове только присваивается?
Офлайн
16
Зависит от реализации на сколько я понимаю. Но вообще небольшие числа и строки кешируются.
>>> def f1(): ... s = "string1" ... print(id(s)) ... >>> f1() 31408000 >>> f1() 31408000 >>> f1() 31408000 >>> s2 = "string1" >>> id(s2) 31408000 >>> s3 = "aaa" >>> id(s3) 40158856
Офлайн