ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #151  
Старый 22.05.2009, 16:40
Аватар для presidentua
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
По умолчанию

Цитата:
Сообщение от nerezus  
urllib2 для http проксей, куков и т.д.
для сокс свой openner написать, там не слишком сложно.
Кстати как напишешь - плз выложи, интересно.
Хотелось бы стандартными средствами... Если использовать сторонние библиотеки, то нашел
http://socksipy.sourceforge.net/ , типа работа как с сокетами, только через сокс, если все работает, то достаточно интересно.
А если самому реализовывать, то интересно посмотреть на этот исходник:
http://www.koders.com/python/fidE472F1B0D8A02578C8960D2A1648A8D6049C6A40.aspx?s =icq#L114

Ну тогда при моих интересах в принципе рано уходить от PyCurl, но правда меня смущает тот факт(как бы поэтому я и решил посмотреть что есть по данному вопросу) что нету версии PyCurl для Windows для версии 2.6.

Хотя пока не собираюсь переходить на 2.6, ведь PyGame с которым активно играюсь пока что рекомендует 2.5... Но тенденция развития PyCurl не очень нравится (
 
Ответить с цитированием

  #152  
Старый 22.05.2009, 16:47
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от presidentua  
Хотелось бы стандартными средствами... Если использовать сторонние библиотеки, то нашел
http://socksipy.sourceforge.net/ , типа работа как с сокетами, только через сокс, если все работает, то достаточно интересно.
А если самому реализовывать, то интересно посмотреть на этот исходник:
http://www.koders.com/python/fidE472F1B0D8A02578C8960D2A1648A8D6049C6A40.aspx?s =icq#L114

Ну тогда при моих интересах в принципе рано уходить от PyCurl, но правда меня смущает тот факт(как бы поэтому я и решил посмотреть что есть по данному вопросу) что нету версии PyCurl для Windows для версии 2.6.

Хотя пока не собираюсь переходить на 2.6, ведь PyGame с которым активно играюсь пока что рекомендует 2.5... Но тенденция развития PyCurl не очень нравится (
ыыы глянь на пост выше
 
Ответить с цитированием

  #153  
Старый 22.05.2009, 17:33
Аватар для presidentua
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
По умолчанию

Цитата:
Сообщение от login999  
ыыы глянь на пост выше
блин! Не увидел, на новую страницу все перебросило, а я пропустил твой пост. Спасибо! Посмотрю!

По поводу Курла не согласен что это ПХП подход. Курл такая же библиотека как и другие, и если она используется в многих языках - это не делает ее ПХП-шной )

Последний раз редактировалось presidentua; 22.05.2009 в 17:40..
 
Ответить с цитированием

  #154  
Старый 22.05.2009, 17:48
Аватар для presidentua
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
По умолчанию

PHP код:
def Counter(Count=[0,]):
     
Count.append(Count[0]+1)
     
del Count[0]
     return 
Count[0
А если так, тоесть глобальная переменная конечно есть, но одна в одном месте ):
PHP код:
0
def add
():
    global 
a
    a
+=1
    
return a

print add()
print 
add() 
 
Ответить с цитированием

  #155  
Старый 22.05.2009, 17:50
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от presidentua  
блин! Не увидел, на новую страницу все перебросило, а я пропустил твой пост. Спасибо! Посмотрю!

По поводу Курла не согласен что это ПХП подход. Курл такая же библиотека как и другие, и если она используется в многих языках - это не делает ее ПХП-шной )
Не совсем так, правильнее наверное будет сказать, что ее реализация есть под многие ЯП..., а вот пользуются ей в основной массе те, кто начал работать с PHP, а потом переходит на другие ЯП и ищут те инструменты, которыми привыкли пользоваться, на нынешней стадии развития питона(я имею ввиду 2,6,2), то единственное чего он не умеет и что поддерживает курл-это работа через соксы
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Моя ИМХА, не претендую на абсолютную правоту
 
Ответить с цитированием

  #156  
Старый 22.05.2009, 17:55
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от presidentua  
PHP код:
def Counter(Count=[0,]):
     
Count.append(Count[0]+1)
     
del Count[0]
     return 
Count[0
А если так, тоесть глобальная переменная конечно есть, но одна в одном месте ):
PHP код:
0
def add
():
    global 
a
    a
+=1
    
return a

print add()
print 
add() 
Незачет - а теперь представь, что у меня 20 функций, которым нужно получение счетчика, причем все это чудо многопоточное и пиздючит ну допустим в 50 потоков... в эту функцию например не нужно даже локов встраивать, так как операция атомарная и при работе с threading проблем быть не должно (по крайней мере так написано), но я считаю некошерным то что для хранения одного-единственного числа приходится создавать список и потом с ним так извращаться
То что я написал является паттерном типа - мну создает заготовки на все случаи жизни
Использование же global :
1. Некошерно
2. Как пишут возможны проблемы как раз при многопоточности
 
Ответить с цитированием

  #157  
Старый 23.05.2009, 11:24
Аватар для cr0w
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
Провел на форуме:
2753780

Репутация: 585
По умолчанию

login999

В твоей функции Lock, наверное, все же нужен: например, если поток выполняющий эту функцию исполнит код "Count.append(Count[0]+1)" и, не успев выполнить "del Count[0]", передаст управление другому потоку, который исполнит код этой функции целиком, то результат ее выполнения в первом потоке в итоге будет неверным.

А использовать изменяемый объект в качестве дефолтного значения аргумента функции, на мой взгляд, даже "некошернее", чем использовать global. (:

Как мне кажется, удобней было бы реализовать такой счетчик в виде класса.

Последний раз редактировалось cr0w; 23.05.2009 в 11:34..
 
Ответить с цитированием

  #158  
Старый 23.05.2009, 11:55
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от cr0w  
login999

В твоей функции Lock, наверное, все же нужен: например, если поток выполняющий эту функцию исполнит код "Count.append(Count[0]+1)" и, не успев выполнить "del Count[0]", передаст управление другому потоку, который исполнит код этой функции целиком, то результат ее выполнения в первом потоке в итоге будет неверным.

А использовать изменяемый объект в качестве дефолтного значения аргумента функции, на мой взгляд, даже "некошернее", чем использовать global. (:

Как мне кажется, удобней было бы реализовать такой счетчик в виде класса.
Имхо классы это лишнее для таких целей
Мну если честно интересует одно - функция-счетчик
А насчет функции - я тут пораскинул моском - я не уверен насчет того, является ли del атомарной операцией, понял что я в этом не уверен и решил переделать эту функцию так:
Код:
def Counter (Number=[0]):
  Number[0] = Number[0]+1
  return Number[0]
А насчет того что там используется изменяемый обьект - и что же здесь плохого? Если такое присваивание возможно, то почему бы его не использовать ?
Тупо одна операция присваивания, теперь точно без локов можно

Последний раз редактировалось login999; 23.05.2009 в 11:59..
 
Ответить с цитированием

  #159  
Старый 23.05.2009, 12:54
Аватар для cr0w
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
Провел на форуме:
2753780

Репутация: 585
По умолчанию

Лок все равно нужен: "Number[0] = Number[0]+1" - не атомрно. А классы, хмм, они очень удобны, даже для таких простых вещей.
Насчет изменяемых объектов: я ж не написал, что не стоит этого использовать, а написал, что это "некошерно". Потому как для кого-то, просматривающего код этой функции, может быть неочевидным то, что список Number будет использоваться один и тот же при каждом вызове функции.
 
Ответить с цитированием

  #160  
Старый 04.06.2009, 03:03
Аватар для Ergoproxy
Ergoproxy
Постоянный
Регистрация: 18.01.2008
Сообщений: 383
Провел на форуме:
9332138

Репутация: 476
Отправить сообщение для Ergoproxy с помощью ICQ
По умолчанию

Всем ку! как при помощи py2exe создаать только один ехе файл?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ