Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2012 16:40:28

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Скорость выполнения и обьявление локальных переменных

Насколько замедляет обьявление переменных в теле функции по сравнению с его выносом? А определение локальных функций?

def f():
    s="string"
    #...

def f():
    def inner():
        #...
    #...

Офлайн

#2 Авг. 8, 2012 17:30:12

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Скорость выполнения и обьявление локальных переменных

Офлайн

#3 Авг. 8, 2012 17:57:27

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Скорость выполнения и обьявление локальных переменных

Я в курсе, что к локальным переменным доступ на один поиск в хеш массиве быстрее, но что происходит со строкой? Она создается каждый раз, или она хранится между вызовами и при вызове только присваивается?

Офлайн

#4 Авг. 8, 2012 18:24:47

GaiveR
От:
Зарегистрирован: 2011-08-13
Сообщения: 122
Репутация: +  16  -
Профиль   Отправить e-mail  

Скорость выполнения и обьявление локальных переменных

Зависит от реализации на сколько я понимаю. Но вообще небольшие числа и строки кешируются.

>>> def f1():
...     s = "string1"
...     print(id(s))
...
>>> f1()
31408000
>>> f1()
31408000
>>> f1()
31408000
>>> s2 = "string1"
>>> id(s2)
31408000
>>> s3 = "aaa"
>>> id(s3)
40158856



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version