
Nikolay
01.11.2016
09:29:25
temp = d[oldkey]; d[oldkey] = {oldkey: temp, yakey: yavalue}

A
01.11.2016
09:31:25
a['a'] = 'a'
a['a'] = {a: a['a'], b: 2}

Aragaer
01.11.2016
09:37:18
если ты хочешь иметь более одного значения по одному ключу, то значит ты хочешь иметь в качестве значения какую-то структуру - список, сет, тупл, еще что-то

AnswerX
01.11.2016
09:54:31
и это тогда может получиться что-то типа defaultdict

Google

Subbotin
01.11.2016
10:03:02
МММ. А где связь?

Nikolay
01.11.2016
10:03:27
from collections import defaultdict

Aragaer
01.11.2016
10:06:36
и значением по умолчанию делать пустой список
.. а так можно кстати?

Artem
01.11.2016
10:10:17
defaultdict(list)

Nikolay
01.11.2016
10:10:30
да, конструктор
передаешь и всё
defaultdict для этого и существует

AnswerX
01.11.2016
10:11:02
хорошая штука дефалтдикт
я юзал ошб логи парсить и ваще просто был невероятно доволен

Artem
01.11.2016
10:12:14
можно даже
tree = lambda: defaultdict(tree)
затем
my = tree()
my['a']['b']['c'] = 1

Subbotin
01.11.2016
10:14:34
Можно. Но это не значит что парню нужен дефаултдикт

Google

Nikolay
01.11.2016
10:14:34
сложна

I'm_your_god
01.11.2016
10:32:05
насколько такое наследование правильное?
стоит ли классу-наследника в ините явно определять аргументы из инита родителя?
class A(object):
def __init__(self, lol=None, gol=None):
self.lol = lol
self.gol = gol
class B(A):
def __init__(self, mol=None, *args, **kwargs):
super(B, self).__init__(*args, **kwargs)
self.mol = mol
вообще, если следовать дзену, то всё-таки лучше явно переопределять аргументы в ините. И всё таки, что бы успокоить душу, мне нужен ещё чей-нибудь фидбек

Nikolay
01.11.2016
10:41:52
всё нормально вродь

mm
01.11.2016
10:44:48

I'm_your_god
01.11.2016
10:48:06
всё нормально вродь
это на первый взгляд, но вот когда делаешь
b = B('a', 'b', 'c')то, сначала с удивлением обнаруживаешь, что 'a' присвоится переменной mol, хотя ожидал её в lol
поэтому и возник такой вопрос. переопределять аргументы в ините явно, или нет?

arisu
01.11.2016
10:48:49

I'm_your_god
01.11.2016
10:49:18

arisu
01.11.2016
10:49:19
Предпочитаю писать неявно *args, **kwargs если они не изменяются
Легче читать

Aragaer
01.11.2016
10:50:19
а еще лучше не использовать наследование от не-абстрактных классов

I'm_your_god
01.11.2016
10:51:36

Nikolay
01.11.2016
10:51:55
в новом синтаксисие распаковки в py3 аналогично

Aragaer
01.11.2016
10:52:10
класс А абстрактный? нет? тогда не надо Б от него наследовать

Erdni
01.11.2016
10:53:50
копозировать, делегировать )

Ssi
01.11.2016
10:58:22

I'm_your_god
01.11.2016
11:00:44

Ssi
01.11.2016
11:01:01
ну, да
просто не ясно, почему ты ждёшь иного поведения

Google

I'm_your_god
01.11.2016
11:03:25
ну потому что мал и зелен, наверно. Я в ините супер дёрнул раньше, чем присвоил переменную, поэтому и ожидал получить другой результат, а оно вон как
а сколько ещё таких как я могут на это напороться, поэтому и спросил, стоит ли явно определять в классе-наследнике аргумены в ините

Ssi
01.11.2016
11:04:42
стоит, если очень хочется. Почему нет-то :)

I'm_your_god
01.11.2016
11:05:23
потому что когда выбор слишком велик, начинается кризис с принятием решения)
какое лучше, что хуже и понеслось
думал может есть практики какие-то, или принятый стандарт на эте тему... надо пеп глянуть

b0g3r
01.11.2016
11:17:01
заясните мне за наследвоание от object
это легаси?

Aragaer
01.11.2016
11:17:58
наоборот
не наследоваться от object это легаси

b0g3r
01.11.2016
11:19:31
поясните мне
в python3 насколько я понимаю это не нужно, там все эти super и @property из коробки работают

b0g3r
01.11.2016
11:19:52
или я не прав?

Aragaer
01.11.2016
11:21:53
да, пишут, что в третьем питоне если не указано, то автоматически неявно наследуется от object

b0g3r
01.11.2016
11:22:26
то есть в python3 это легаси, а в python2 это new style?)

Ssi
01.11.2016
11:24:15
во второй ветке 2 типа классов
если ты наследуешься от object, то получаешь класс в классическом и привычном смысле

Aragaer
01.11.2016
11:25:24
в питон 2 это два разных вида классов
а в питон 3 это одно и то же

Ssi
01.11.2016
11:25:52
если нет, то у тебя будет какой-то другой класс. Не помню, что именно, но что-то с ними не так

Google

b0g3r
01.11.2016
11:26:16
а если мне нужен недо-класс, чисто как структура

Ssi
01.11.2016
11:26:35
и да, в третьей ветке эту нестандарщину выпили, вроде, к хуям
ну, и создай класс

Pavel
01.11.2016
11:27:01

b0g3r
01.11.2016
11:27:23
посмотрю, спасибо)

Artem
01.11.2016
11:29:46
Вот в жс (V8) например не парятся и создают внутри движка по классу на каждый отличающийся по полям объект
А дикты у них это объекты, оцените адос

Admin
ERROR: S client not available

Artem
01.11.2016
11:30:57
Никаких хеш-таблиц
лукап по полю словаря - это доступ по константному смещению, заданному в описании класса.

Михаил
01.11.2016
11:35:30
Нубовопросы инкамин - кто-нибудь использовал locust.io для тестирования нагрузки?

Nikolay
01.11.2016
11:43:14


Alex
01.11.2016
12:23:06
Возможно ли фреймворк web.py ипользовать с LLVM или с JVM (Jython) для идеального высоконагруженного производительного RESTful API бэнэнда?
Мне очень понравился простой подход Web.py,
и хотелось бы начать проектик сразу в рамках какого-то высокопроизводительного стэка / платформы.
Вариант 1: запуск web.py с Jython в JVM
Вариант 2: запуск web.py с компилятором LLVM IR
Вариант 3: запуск web.py с PyPy JIT компилятором
Вариант 4: может быть, у вас есть идея получше?
Я исследовал варианты и пока нашел некоторую информацию о LLVM, Jython и т.д.:
питон + LLVM http://llvmlite.pydata.org/en/latest/ http://www.llvmpy.org/
питон + Jython http://www.jython.org/ JVM
Python + НКУ https://gcc-python-plugin.readthedocs.io/en/latest/
питон + JIT PyPy http://pypy.org/
Python инструменты собраны в одном месте в GitHub: https://github.com/vinta/awesome-python
Я нашел самый близкий к этой идее проект на Github, где один парень на самом деле юзает web.py вместе с JVM Jython, хотя он также туда вмешал FLASK.
Web.py Jython JVM ShiroAuth:
http://faruk.akgul.org/blog/flask-webpy-meet-jvm-jython/
Auth с Java Security Apache Shiro:
https://github.com/faruken/flask-web.py-jvm
Однако ему пришлось сильно пропатчить web.py, но проекту уже много лет и он не поддерживается, вряд ли патч будет работать на новом web.py.
Любые мысли, идеи о том, как сделать web.py еще более производительным, чем он уже есть?
Спасибо всем за вас мысли заранее!


H
01.11.2016
12:30:32
Web.py абандонед проект, не советую его использовать
>идеального высоконагруженного производительного RESTful API
http://2.bp.blogspot.com/-F7bNC9bLyYk/UWvnsXkPBMI/AAAAAAAAAPk/ek74Vuzy34A/s1600/python-fastest-web-framework.png
х - хигхлоад

Andrew
01.11.2016
12:52:06

H
01.11.2016
12:52:25
новый форк aiohttp? ?

Andrew
01.11.2016
12:52:41

Andrey
01.11.2016
12:52:49
uvloop всех делает
https://github.com/MagicStack/uvloop

Google

H
01.11.2016
12:53:16
тогда уж феррари ф1 всех сделает
причем тут имплементация асинхронных эвентов и веб фреймворки?

Andrew
01.11.2016
12:53:47

Andrey
01.11.2016
12:53:49

H
01.11.2016
12:54:38

Andrey
01.11.2016
12:54:40

H
01.11.2016
12:55:06
че за либа?
http://e0.365dm.com/16/02/16-9/20/ferrari-formula-one_3420142.jpg?20160223095033
только она не опенсорс :)

Andrew
01.11.2016
12:55:21

H
01.11.2016
12:55:42
aiopg я заменил на asyncpg кстати
работа с базой данных все же требует скорости
что за неведанные проблемы?

Andrew
01.11.2016
12:57:16

H
01.11.2016
12:57:29
ну так это не проблема aiohttp

Andrey
01.11.2016
12:57:48
tornado не совсем веб-фреймворк

H
01.11.2016
12:58:02
светлова послушай, он очень хорошо рассказывает про то как оно работает
Tornado is a Python web framework and asynchronous networking library
с главной страницы

Andrey
01.11.2016
12:58:41
Okay