Что выведет код?
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()))
Выберите правильный вариант
Anonymous Quiz
53%
[0, 1, 'a', 'b']
20%
['0', '1', 'a', 'b']
23%
[(0, 1), ('a', 'b')]
1%
TypeError
2%
Посмотреть результаты
Что выведет код?
def chain():
yield from [1, 2]
yield from (x for x in range(2))
print(list(chain()))
Выберите правильный вариант
Anonymous Quiz
54%
[1, 2, 0, 1]
13%
[1, 2, range(2)]
22%
[1, 2, [0, 1]]
7%
TypeError
4%
Посмотреть результаты
Что выведет код?
def inner():
yield from [1, 2]
def outer():
yield from inner()
print(list(outer()))
Выберите правильный вариант
Anonymous Quiz
25%
[[1, 2]]
12%
[inner()]
56%
[1, 2]
4%
TypeError
4%
Посмотреть результаты