Найти - Пользователи
Полная версия: Как работает этот код?
Начало » Python для новичков » Как работает этот код?
1
Landberk
Здравствуйте! Изучаю Python по Марку Лутцу, в книге есть код, который должна понимать по ходу книги, но не понимаю https://paste.nix.org.ua/a923cc86e8a59a4b.py
Как вызвать эту функцию timer? *args и **kargs там - это ли не знаки что должны быть позиционные и именованные аргументы (правильно ли я понимаю)?
PEHDOM
вроде правильно.. тольконе должны быть, а могут быть (могут и не быть) и их колличество заранее неизвстно.
пример :
 import time
reps = 3
repslist = range(reps)
def timer(func, *pargs, **kargs):
    start = time.clock()
    for i in repslist:
        ret = func(*pargs, **kargs)
    elapsed = time.clock() - start
    return (elapsed, ret)
def func(arg1, arg2='arg2'):
    print('arg1= {}, arg2 = {}'.format(arg1, arg2))
    return 'args is: {} {}'.format(arg1, arg2)
func('test1_arg1', arg2 = 'test1_arg2')
print(timer(func, 'test2_arg1', arg2 = 'test2_arg2'))
>>>
>>> 
arg1= test1_arg1, arg2 = test1_arg2
arg1= test2_arg1, arg2 = test2_arg2
arg1= test2_arg1, arg2 = test2_arg2
arg1= test2_arg1, arg2 = test2_arg2
(0.0003797309573857481, 'args is: test2_arg1 test2_arg2')
>>> 
>>>
FishHook
PEHDOM

 def timer(func, *pargs, **kargs):
    .....
Зачем? Есть же стандартный timeit
PEHDOM
FishHook да я в курсе, def timer() это код топикстартера из книжки. Я просто показал как его вызывать.
FishHook
PEHDOM
ну тады ой
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB