Что выведет код?
def dec(func):
print("dec called", end=" ")
return func
@dec
def f():
print("f called")
f()
Выберите правильный вариант
Anonymous Quiz
34%
dec called f called
14%
dec called f called
22%
f called dec called
17%
dec called f called
4%
TypeError
4%
ничего
5%
Посмотреть результаты
Что выведет код?
def dec(func):
def inner():
print("decorated")
f = dec(lambda: print("hello"))
f()
Выберите правильный вариант
Anonymous Quiz
14%
decorated
26%
hello
29%
decorated\nhello
22%
NoneType is not callable
8%
ничего
1%
Посмотреть результаты
Что выведет код?
def dec1(func):
def wrap():
print("1", end=" ")
func()
return wrap
def dec2(func):
def wrap():
print("2", end=" ")
func()
return wrap
@dec1
@dec2
def f():
print("f")
f()
Выберите правильный вариант
Anonymous Quiz
14%
2 1 f
11%
f 2 1
7%
TypeError
15%
1 f 2
7%
2 f 1
42%
1 2 f
5%
Посмотреть результаты
Что выведет код?
from functools import wraps
def dec(func):
@wraps(func)
def wrapper():
pass
return wrapper
@dec
def f():
"""I am docstring"""
return 42
print(f.__name__, f.__doc__)
Выберите правильный вариант
Anonymous Quiz
5%
wrapper None
8%
f None
28%
wrapper I am docstring
38%
f I am docstring
15%
f 42
3%
TypeError
2%
Посмотреть результаты
Что выведет код?
def outer(msg):
def dec(func):
def wrapper(*args):
print(msg, end=" ")
return func(*args)
return wrapper
return dec
@outer("hello")
@outer("bye")
def f(x):
print(x)
f("!")
Выберите правильный вариант
Anonymous Quiz
10%
bye hello !
10%
hello !
12%
bye !
56%
hello bye !
3%
!
6%
TypeError
3%
Посмотреть результаты
Что выведет код?
import time
def timer(func):
def wrapper():
start = time.time()
func()
end = time.time()
print("Elapsed:", round(end - start, 2), end=" ")
return wrapper
@timer
def f():
time.sleep(0.1)
print("f done", end=" ")
f()
Выберите правильный вариант
Anonymous Quiz
20%
Elapsed: 0.1 f done
8%
f done
8%
TypeError
12%
f done Elapsed: 0.0
47%
f done Elapsed: 0.1
0%
Elapsed: 0.0
6%
Посмотреть результаты
Что выведет код?
class dec:
def __init__(self, func):
self.func = func
print("init", end=" ")
def __call__(self):
print("before", end=" ")
self.func()
print("after", end=" ")
@dec
def f():
print("f called", end=" ")
f()
Выберите правильный вариант
Anonymous Quiz
15%
init f called before after
60%
init before f called after
7%
before f called after init
6%
init f called after
1%
TypeError
4%
ничего
6%
Посмотреть результаты
Что выведет код?
def debug(enabled=True):
def decorator(func):
def wrapper(*args, **kwargs):
if enabled:
print("DEBUG:", func.__name__)
return func(*args, **kwargs)
return wrapper
return decorator
@debug(enabled=False)
def f():
print("running f")
f()
Выберите правильный вариант
Anonymous Quiz
15%
DEBUG: f\nrunning f
55%
running f
9%
f\nrunning f
13%
DEBUG: running f
1%
TypeError
3%
ничего
3%
Посмотреть результаты
Что выведет код?
def gen():
yield 1
yield 2
return 3
g = gen()
try:
while True:
print(next(g), end =" ")
except StopIteration as e:
print("Returned:", e.value)
Выберите правильный вариант
Anonymous Quiz
12%
1 2 Returned: None
24%
1 2 TypeError
51%
1 2 Returned: 3
5%
Returned: 3
7%
Посмотреть результаты
Что выведет код?
def repeater(val):
while True:
new = yield val
if new:
val = new
g = repeater(10)
print(next(g), end =" ")
print(g.send(20), end =" ")
print(next(g), end =" ")