Выберите правильный вариант
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 =" ")
Выберите правильный вариант
Anonymous Quiz
14%
10 20 10
16%
10 10 10
52%
10 20 20
12%
TypеError
6%
Посмотреть результаты
Что выведет код?
class MyRange:
def __init__(self, n):
self.n = n
self.i = 0
def __iter__(self):
return self
def __next__(self):
if self.i >= self.n:
raise StopIteration
self.i += 1
return self.i
print(list(MyRange(3)))
Выберите правильный вариант
Anonymous Quiz
49%
[0, 1, 2]
30%
[1, 2, 3]
11%
[1, 2]
7%
[1, 2, 3, 4]
3%
Посмотреть результаты
Что выведет код?
def counter():
i = 0
while i < 3:
yield i
i += 1
else:
yield 'done'
print(list(counter()))
Выберите правильный вариант
Anonymous Quiz
12%
[0, 1, 2]
76%
[0, 1, 2, 'done']
5%
['done']
5%
[0, 1, 2, 3, 'done']
2%
Посмотреть результаты
Что выведет код?
def tricky():
yield from range(2)
yield from "ab"
print(list(tricky()))