FooBar
Янв. 23, 2009 02:57:14
доброго вам времени суток, у меня есть вопрос: когда я компилирую шаблон внутри функции, то пайтон его при каждом вызове будет компилировать занова? и чтобы этого избежать нужно вынести его в глобальное простарнство имен?
ZZZ
Янв. 23, 2009 03:26:16
Да, но в 99.9% случаев, лучше сделать так, как удобней, ибо потери в скорости будут минимальны.
Если нужна скорость, то пишите на Си, так как питон, это, в первую очередь, удобный и понятный язык и писать на нём стоит максимально оптимизируя код не для скорости, а для удобочитаемости.
shiza
Янв. 23, 2009 03:54:35
я всегда в глобальное выношу. или в атрибуты класса =)
FooBar
Янв. 23, 2009 04:07:05
спасибо всем ответившим, вопрос решен
ZAN
Янв. 23, 2009 11:06:04
ZZZ
Если нужна скорость, то пишите на Си, так как питон, это, в первую очередь, удобный и понятный язык и писать на нём стоит максимально оптимизируя код не для скорости, а для удобочитаемости.
Движок регулярки в питоне практически полностью написана на сях, на питоне - только обертки функций в классы и кое-какие дополнительные проверки. Так что потори в скорости практически не будет в сравнении с сишной программой.
Если шаблон - статический, то можно запихнуть в keyword.
def function(line, regexp=re.compile('tralala')):
pass
Шаблон будет инициализирован один раз при инициализации функции. Хотя с точки зрения “Explicit is better than implicit” - так себе решение.