@python_beginnersЭта группа больше не существует

Страница 1086 из 1885
Pavel
09.01.2017
06:02:53
пишите такой размер кода, чтобы декларация переменных был недалека от их использования.

Baal
09.01.2017
06:03:02
С другой стороны, вот тебе прямо сейчас нужна переменная и ты хочешь быть уверенным в ее значении и объявляешь перед использованием

Т.е. код всегда должен влезать в 1-2 страницы?

Pavel
09.01.2017
06:03:50
паскаль с тобой не согласен. ?
и какая-то древняя реализация C, если склероз не изменяет.

Google
Pavel
09.01.2017
06:05:55
Т.е. код всегда должен влезать в 1-2 страницы?
я бы избегал слов "всегда должен", когда речь идёт про программирование. Миллион случаев, миллион вариантов, миллион возможностей. Но в любом случае, толпа мелких и средних функций гораздо сподручнее, чем одна гигантская.

Igor
09.01.2017
06:05:58
не факт, что в его случае это будет правильным решением, ой не факт

Baal
09.01.2017
06:06:01
Использовать списки.
А можно пример для новичка?

SuperUser
09.01.2017
06:06:13
Сейчас

Igor
09.01.2017
06:06:16
и мне кажется, дикты бы были нагляднее

In [32]: my_data = [0, 0, 0, 0, 0] ...: ...: my_data[0] = 1 ...: my_data[2] = 5 ...: my_data[4] = my_data[0] + 3 ...: ...: print(my_data) ...: [1, 0, 5, 0, 4]

In [33]: my_data = {'a': 0, 'b': 0, 'c': 0} ...: ...: my_data['a'] = 2 ...: my_data['b'] = 4 ...: my_data['c'] = my_data['a'] + 9 ...: ...: print(my_data) ...: {'a': 2, 'c': 11, 'b': 4}

(щас кто-нибудь предложит сделать my_data = [0] * 5 или воспользоваться defaultdict, но фиииг знает)

Baal
09.01.2017
06:09:27
Как то очень заморочено через словари получается. И громоздко (

Igor
09.01.2017
06:09:30
можно я лучше поимею погоду на улице :(

Google
Igor
09.01.2017
06:09:43
я говорю, зависит от случая, и не факт что тебе это подходит

Pavel
09.01.2017
06:09:48
Igor
09.01.2017
06:10:06
тоже холодно?
зажравшиеся москвичи не привыкли к -30º!

Pavel
09.01.2017
06:10:22
зажравшиеся москвичи не привыкли к -30º!
ну у вас хотя бы метро есть.

Igor
09.01.2017
06:10:28
и кредитные тачки!

Pavel
09.01.2017
06:10:45
и кредитные тачки!
уж этого добра по всей стране навалом.

Alone
09.01.2017
06:10:55
Ну почему кредитные :)

Кто - то купил недорого подержанный :)

Или на автобусах :)

Насчёт - 30, ну да, немного неожиданно

Хотя в 2005 году было холоднее

Сори за офтоп

Anonymous*
09.01.2017
06:13:03
в 2005 также было

я помню занятия в школе отменили

Pavel
09.01.2017
06:13:07
Хотя в 2005 году было холоднее
во у людей память, помнить погоду 12 лет назад. Белая зависть.

Anonymous*
09.01.2017
06:13:10
сори за офтоп

Pavel
09.01.2017
06:14:03
сори за офтоп

Джон
09.01.2017
07:10:52
сори за офтоп

Pavel
09.01.2017
07:31:59
В Прощеное воскресенье каждый должен получить прощение за свои мелкие или большие прегрешения, чтобы войти в Великий пост кристально чистым, со светлой душою. В 2017 году Прощеное воскресенье припадает на 26 февраля. Источник: http://god2017.com/prazdniki/proshhenoe-voskresene-v-2017-godu

Igor
09.01.2017
07:32:10
жалко, что не на 29

Google
Older
09.01.2017
07:42:38
Парни, всем привет. Кто работал с таймтрекером на апворке?

Pavel
09.01.2017
07:56:58
я недолго

Older
09.01.2017
07:57:55
не могу активировать время. Пишет что нет контрактов. Я правильно понимаю, что заказчик должен на меня контракт назначить?

Older
09.01.2017
07:59:23
Понял, спасиб

Vadim
09.01.2017
08:11:43
А html и css знать обязательно разработчику питонисту?

Igor
09.01.2017
08:14:08
необязательно, можно заниматься разработкой чего-нибудь помимо веб-сайтов ;)

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

блин, у меня совсем дебильный вопрос. как правильнее инициализировать дефолтные значения в классах? так - ок? class Connection(object): host = None port = None def __init__(self, host='127.0.0.1', port=1488): self.host = host self.port = port

у меня просто руки чешутся сделать class Connection(object): host = '127.0.0.1' port = 8192 но в __init__ все равно придется переопределять и/или передавать дефолтные значения

Johnnie
09.01.2017
09:03:49
o/

Igor
09.01.2017
09:04:25
сорри, привык ебанутые значения как пример приводить :((

Cykooz
09.01.2017
09:05:01
На уровне класса определять дефолты имеет особый смысл в том случае если в __init__ эти поля не инициализируются, а деалется это в каком то другом методе. Если же поля инициализируются в __init__ то их добавление на уровне класса чисто "что бы было красиво", т.е. не обязательно

Johnnie
09.01.2017
09:07:28
глобальные переменные это сильно хуево?

например, если она одна

и если от нее избавляться, то ее надо протащить через туеву хучу функций

Igor
09.01.2017
09:08:19
фласк некоторые/иногда ругают за использование глобальных переменных, если не ошибаюсь

Johnnie
09.01.2017
09:08:31
если быть точным, то это список проксей

Google
Johnnie
09.01.2017
09:08:46
я не хочу просто каждый раз дрочить сайт http://www.freeproxy-list.ru

def get_proxy_list(url='http://www.freeproxy-list.ru/api/proxy'): return requests.get(url, {'anonymity': 'false', 'token': 'demo'}).text.split('\n') def get_random_proxy(): return random.choice(PROXY_LIST)

if __name__ == '__main__': PROXY_LIST = get_proxy_list()

так норм?

Igor
09.01.2017
09:10:46
этот момент, когда тебе кажется, что ты достаточно компетентен для того, чтобы ответить, но чуйка подсказывает, что нихуя и лучше послушать других :(

Johnnie
09.01.2017
09:12:02
и еще кинопоиск какой-то нежный пиздец

чуть лишнего спросил - футболит

Cykooz
09.01.2017
09:13:37
глобальные переменные это сильно хуево?
Зависит от того ради чего всё это. Если это какая то read-only переменная в несложном скрипте, то можно и глобально её запилить.

Pavel
09.01.2017
09:16:37
конкретно в этом варианте, requests умеет работать с переменными окружения http_proxy и https_proxy. Или в общем случае PROTOCOL_proxy.

Johnnie
09.01.2017
09:19:44
ты предлагаешь сувать это переменную окружения и кормить ее на вход реквесту?

Johnnie
09.01.2017
09:22:07
я понимаю вариант когда забирается токен из энва, например. но срать в энвы питоном, чтобы потом питоном же это и съесть - не понимаю :)

Igor
09.01.2017
09:22:48
я понимаю вариант когда забирается токен из энва, например. но срать в энвы питоном, чтобы потом питоном же это и съесть - не понимаю :)
вот да, я так понял, что ты хочешь на стороне питончика переключаться на другой рабочий прокси, если вдруг начал получать отлуп

Pavel
09.01.2017
09:23:17
я понимаю вариант когда забирается токен из энва, например. но срать в энвы питоном, чтобы потом питоном же это и съесть - не понимаю :)
зато можно сделать такой фокус: завести отдельный тред и в нём раз в 10 секунд менять прокси.

Johnnie
09.01.2017
09:23:19
ну почти так, да. просто при каждом новом запросе берется рандомный прокси

Марк
09.01.2017
09:23:41
Я в своем проекте нахуярил уже штук десять глобальных стеков. Вот как мог их избегал, но без них никак вообще((((

Johnnie
09.01.2017
09:24:53
зато можно сделать такой фокус: завести отдельный тред и в нём раз в 10 секунд менять прокси.
не, спасибо))) я пока хочу добиться, чтобы хотя бы кинопоиск начал на меня реагировать

Марк
09.01.2017
09:25:11
Два сервера, работающие с разными приложухами. И им как-то надо обмениваться данными иногда. Хуй его, как сделать красивее

То есть, условно это можно показать так: класс Эхосервер один, класс Эхосервер Два, вызов обоих в мейне и loop.

Dmitriy
09.01.2017
09:28:10
Google
Dmitriy
09.01.2017
09:28:58
С одной стороны в питоне на это пофиг

Как по мне так такая переменная больше на константу похожа и помещать в нее мутабельный объект не есть красиво

Которое еще и из метода берется

Марк
09.01.2017
09:31:19
Ща вот прикинул: теоретически можно замутить абстрактный класс, где будут иницилизированы основные стеки для обмена, дальше ебнуть наследование на оба сервера-класса. Пространство имен должно для этих стеков быть общим.

Марк
09.01.2017
09:33:15
Либо можно попробовать юзнуть Торнадо или твистед. Правда, я не знаю, можно ли в нем сразу забиндить пару портов и еще быть клиентом

Dmitriy
09.01.2017
09:41:22
а как красиво?
Смотря как у тебя реализовано получение данных, можно записать в простую переменную в методе где идет запрос к серверу

Johnnie
09.01.2017
09:42:08
так запрос 100500 раз может быть

соот-но один и тот же список проксей тоже придется запросить 100500 раз

Johnnie
09.01.2017
09:45:21
requests_cache?

Dmitriy
09.01.2017
09:47:06
Кстати для проксей вроде было какое-то решение в виде модуля

Или что-то в этом роде

Если есть loop значит его можно взять в любой момент и записать в него что-то или считать

Марк
09.01.2017
09:54:22
Dmitriy
09.01.2017
09:54:58
У меня это выглядит как-то так: a = classOne() b = ClassTwo() c.loop()
Я просто подумал, что loop имеет представление в виде объекта

Типа ioloopов всяких

Марк
09.01.2017
09:55:49
Он и есть io, только в двойке на основе асинкоре

Dmitriy
09.01.2017
10:00:13
Гм. На примере торнады могу сказать, что там ioloop может хранить последний инстанс, который можно использовать где угодно. Опять же в контексте этого самого ioloop

А в инстанс можно поместить нужные данные

Марк
09.01.2017
10:02:05
А можно попонятней? Вот есть у меня условный ExoServer1. В нем произошли какие-то события. Я их записал в self.event. Все хорошо, но мне их нужно передать в другой сервер другого класса. Причем тут loop?

Страница 1086 из 1885

Эта группа больше не существует Эта группа больше не существует