odnochlen
Авг. 8, 2012 16:40:28
Насколько замедляет обьявление переменных в теле функции по сравнению с его выносом? А определение локальных функций?
def f():
def inner():
#...
#...
odnochlen
Авг. 8, 2012 17:57:27
Я в курсе, что к локальным переменным доступ на один поиск в хеш массиве быстрее, но что происходит со строкой? Она создается каждый раз, или она хранится между вызовами и при вызове только присваивается?
GaiveR
Авг. 8, 2012 18:24:47
Зависит от реализации на сколько я понимаю. Но вообще небольшие числа и строки кешируются.
>>> def f1():
... s = "string1"
... print(id(s))
...
>>> f1()
31408000
>>> f1()
31408000
>>> f1()
31408000
>>> s2 = "string1"
>>> id(s2)
31408000
>>> s3 = "aaa"
>>> id(s3)
40158856