
22.05.2009, 17:55
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами:
9427413
Репутация:
973
|
|
Сообщение от presidentua
PHP код:
def Counter(Count=[0,]):
Count.append(Count[0]+1)
del Count[0]
return Count[0]
А если так, тоесть глобальная переменная конечно есть, но одна в одном месте ):
PHP код:
a = 0
def add():
global a
a+=1
return a
print add()
print add()
Незачет - а теперь представь, что у меня 20 функций, которым нужно получение счетчика, причем все это чудо многопоточное и пиздючит ну допустим в 50 потоков... в эту функцию например не нужно даже локов встраивать, так как операция атомарная и при работе с threading проблем быть не должно (по крайней мере так написано), но я считаю некошерным то что для хранения одного-единственного числа приходится создавать список и потом с ним так извращаться
То что я написал является паттерном типа - мну создает заготовки на все случаи жизни 
Использование же global :
1. Некошерно
2. Как пишут возможны проблемы как раз при многопоточности
|
|
|