Форум сайта python.su
Вы о чем вообще? )
Не вызывать get_options - это экономия на спичках. Она вызывается один (!) раз и служит чисто утилитарным целям - распарсить коммандную строку.
Когда я делаю cli-утилиты я поступаю точно также - выношу код в отдельную функцию и если мне понадобилось изменить или добавить опции/аргументы - я точно знаю где это нужно делать. С точки зрения читабельности/архитектуры такой подход лучше, на мой вгляд.
Офлайн
Мне тоже непонятно почему так прицепились к этой функции :)
Офлайн
SotericПотому что она не нужна
Мне тоже непонятно почему так прицепились к этой функции :)
Офлайн
FishHookКому?
Потому что она не нужна
Офлайн
s0rgОбычно люди делают так, чтобы им было удобно читать, весь код без классов, функций и т.п. будет похож на “говно-код”, но если это писал человек, которому так понятней, пускай так и делает.FishHookКому?
Потому что она не нужна
Вы предлагаете писать код единой простыней, дабы не вызывать функции?
Офлайн
Кстати к вопросу о тестах:
from timeit import Timer
def test1():
'''def inside loop'''
def f():
pass
for _ in xrange(1000000):
f()
def test2():
'''def outside loop'''
def foo():
for _ in xrange(1000000):
pass
foo()
def test3():
'''without def'''
for _ in xrange(1000000):
pass
time = Timer()
for fn in (test1, test2, test3):
start = time.timer()
fn()
print 'Test: %s, result: %f' % (fn.__doc__, time.timer() - start)
Отредактировано (Янв. 16, 2012 17:14:05)
Офлайн
У меня:
Test: def inside loop, result: 0.174685
Test: def outside loop, result: 0.027839
Test: without def, result: 0.027960
from timeit import Timer
def test1():
'''def inside loop'''
def f():
pass
for _ in xrange(1000000000):
f()
def test2():
'''def outside loop'''
def foo():
for _ in xrange(1000000000):
pass
foo()
def test3():
'''without def'''
for _ in xrange(1000000000):
pass
time = Timer()
for fn in (test1, test2, test3):
start = time.timer()
fn()
print 'Test: %s, result: %f' % (fn.__doc__, time.timer() - start)
Офлайн
1000000 достаточно же
Офлайн
Друзья, раз уж пошла такая пьянка, скажите, как вы относитесь к импорту внутри функций? Насколько это соответствует духу Python, есть ли какие-то минусы?
Офлайн
CHAOSМое мнение - лучше так не делать, потом легко это потерять.
как вы относитесь к импорту внутри функций?
pep8
- Imports are always put at the top of the file, just after any module
comments and docstrings, and before module globals and constants.
Офлайн