Вариант 1681198572.
Что делает следующая программа?
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()
Какими способами можно получить доступ к функции «fun()» из модуля «fns»?
Какие встроенные функции служат для создания объектов определенного типа (конструкторы классов/функции-фабрики…)?
Какое из приведенных ниже регулярных выражений некорректно?
Какие из перечисленных функций имеют побочные эффекты:
lst = [] def A(l, x): return lst + [x] def B(l, x): lst.append(x) return lst def C(l, x): return lst.count(x)
Имеются следующие определения:
def m1(self): print("m1") class M: def m2(self): print("m2") m = M()
Какой из фрагментов кода содержит ошибки?
С помощью какого регулярного выражения можно найти все (ровно) пятикратные повторения цифры 0?
Может ли возникнуть 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()
С помощью какого из приведенных ниже сравнений можно установить, что x и y — это один и тот же объект?
import os global v v = 0 def A(x, y): return abs(x + y) B = lambda k, v: os.environ.setdefault(k, v) def C(x): global v v = v + 1 return v + x