Вариант 4220594459.
Может ли возникнуть deadlock в следующей программе:
import threading res_A = threading.Lock() res_B = threading.Lock() res_C = threading.Lock() def proc1(): res_A.acquire() res_B.acquire() res_C.acquire() # ... res_C.release() res_B.release() res_A.release() def proc2(): res_A.acquire() res_B.acquire() res_C.acquire() # ... res_C.release() res_B.release() res_A.release() p1 = threading.Thread(target=proc1, name="t1") p2 = threading.Thread(target=proc2, name="t2") p1.start() p2.start() p1.join() p2.join()
Что будет получено в результате вычисления следующего выражения:
0 < [1, 4][1] < 3 and None
Что будет выведено следующей программой?
S = 0 for i in range(1, 10): if i % 2 == 0: S = S + i print(S)
Имеются следующие определения:
def m1(self): print("m1") class M: def m2(self): print("m2") m = M()
Какой из фрагментов кода содержит ошибки?
Сколько элементов будет содержать список L после выполнения следующего кода:
L = [] L.append([1,2,3]) L.insert(1, "abc") del L[0][0]
Какие из перечисленных функций имеют побочные эффекты:
def A(lst): def AA(x): return lst + [x] return AA def B(x): def BB(lst): return lst + [x] return BB def C(x, cache={}): if cache.has_key(x): return cache[x] def CC(lst): return lst + [x] cache[x] = CC return CC
Что делает следующая программа?
import threading l = threading.Lock() def proc(nm, n=0): l.acquire() try: if n < 5: print("*", end='') return proc(nm, n+1) else: return nm finally: l.release() for i in range(5): threading.Thread(target=proc, args=(str(i),)).start()
(0 < 5 <= 3) and (0 / 0)
Какой длины строки можно использовать в Python?
Как называется отношение, которое имеют следующие два класса:
class A(type): def __init__(cls, name, bases, dict): return super(A, cls).__init__(cls, name, bases, dict) B = A("B", (), {})