Форум сайта python.su
0
Здравствуйте! Изучаю Python по Марку Лутцу, в книге есть код, который должна понимать по ходу книги, но не понимаю https://paste.nix.org.ua/a923cc86e8a59a4b.py
Как вызвать эту функцию timer? *args и **kargs там - это ли не знаки что должны быть позиционные и именованные аргументы (правильно ли я понимаю)?
Офлайн
294
вроде правильно.. тольконе должны быть, а могут быть (могут и не быть) и их колличество заранее неизвстно.
пример :
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') >>> >>>
[code python][/code]
Отредактировано PEHDOM (Окт. 3, 2017 10:13:34)
Офлайн
568
PEHDOM
def timer(func, *pargs, **kargs): .....
Отредактировано FishHook (Окт. 3, 2017 10:14:13)
Офлайн
294
FishHook да я в курсе, def timer() это код топикстартера из книжки. Я просто показал как его вызывать.
[code python][/code]
Отредактировано PEHDOM (Окт. 3, 2017 10:15:44)
Офлайн
568
PEHDOM
ну тады ой
Офлайн