Size: a a a

2020 February 19

DI

Danil Ivanov in SPb Python
ок, сделаем одну из следующих встреч про вопросы на соебеседование
источник

YV

Yuliya Volkova in SPb Python
ещё бы 1-2 найти и норм ) чтобы побольше вариативность
источник

AC

Alexander Chistyakov in SPb Python
Делаю бэкенд сервиса типа "гугл-форм".

Нужно хранить схему самой формы и её заполнения.
Схема формы и данные заполнения выглядят примерно так:
https://github.com/rjsf-team/react-jsonschema-form

По заполнениям нужно строить сводку. Возвращать json с количеством заполнений. Типа такого:

Поле x (selectbox):
 ответ x1:
   количество: 2
   ид заполнений: [uuid1, uuid2]
 ответ x2:
   количество: 1
   ид заполнений: [uuid3]


Какую бд лучше использовать?
* postgres + jsonb (постгрес уже есть в проекте)
* mongodb (с монгой до этого не работал)
* что-то другое


Заполнений одной формы будет исчисляться десятками тысяч (не более 100.000).
источник

➔m

➔◾ muar.ia mvzmvmzvzvmzvzv in SPb Python
Yuliya Volkova
темы собеседований и вопросов так часто звучат, что таки пора сделать мит ап с 3-4 докладами от интервьюверов и тим лидов в стиле "что я спрашиваю на интервью и почему" 🙂 подумалось вдруг мне
Ого. Было бы круто, да
источник

MP

Maxim Pyatishev in SPb Python
pragus
Как ты отличишь значение == None от отсутствия значения?
ты Option из какого пакета используешь? Можешь привести пример кода, где это уместно и оправдано, а не на уровне хелл-о-ворд?
источник

AG

Alexander Gorokhov in SPb Python
pragus
Как ты отличишь значение == None от отсутствия значения?
Обычно используется sentinel объект который ставится по дефолту, типа

sentinel = object()

def foo(bar=sentinel) :


И потом сравниваешь через is с переданным значением.
источник

SM

Serge Matveenko in SPb Python
Alexander Gorokhov
Обычно используется sentinel объект который ставится по дефолту, типа

sentinel = object()

def foo(bar=sentinel) :


И потом сравниваешь через is с переданным значением.
ага, вот и пример из реального проекта
https://github.com/python-attrs/attrs/blob/d6a65fb89f8ac7868213f5cecdbec5b3611bfdca/src/attr/_make.py#L99

и выше по файлу там есть как это всё собирается
источник

NK

ID:0 in SPb Python
Всем привет, у нас следующая встреча будет особенной!🔥
Следующая встреча нашего сообщества будет 28 марта в рамках ITGM#16, который будет проходить в "Тинькофф Арена".👨‍👨‍👦‍👦

Вот ссылочка на регистрацию, а пока я распишу вам правила. 👉 https://piter-united.ru/

Важно!

Предлагайте активности в личном кабинете! Голосуйте за активности!

Как участвовать🤔

1. Заходим на piter-united.ru – регистрация уже открыта!👌
Было решено предоставить вам непосредственную возможность влиять на программу наших выступлений, чтобы это было событие в первую очередь для участников, а не организаторов сообществ. Поэтому, организаторы ITGM создали сайт💻 https://app.piter-united.ru/ на котором можно предлагать свои темы и голосовать за другие, самые популярные темы будут рассмотрены в рамках сообществ на мероприятии.
2. На почту придёт письмо от timepad✉️
3. Через некоторое время - на почту придёт письмо от личного кабинета участника ITGM✉️🔐 (проверьте спам! Письмо должно придти в течении часа)
4. В кабинете заполняем профиль и обязательно указываем наше (SPB Python) сообщество🐍
5. Добавляем свои активности (посиделки / батлы / обсуждения / доклады / хакатоны / мастер-классы и т.д.)
6. Обязательно голосуем за понравившиеся👍
7. Пингуем друзей ,чтобы они тоже регистрировались и голосовали

В этот раз встреча будет еще больше об общении между нами как внутри этого сообщества, так и за его пределами.

💥Важно:

1) Почему надо подавать активности:
- вам есть что рассказать
- вы хотите, чтобы кто-нибудь вам рассказал
- у вас есть идея крутой активности
- ищете единомышленников и хотите с ними пообщаться

2) За какие активности надо голосовать:
- которые хотите обсудить
- про которые готовы рассказать
- в которых хотите поучаствовать

В вашем профиле будет список ваших любимых тем = ваше личное расписание на ITGM🖤
источник
2020 February 20

IB

Ivan Belekhov in SPb Python
Ilya Ilyinykh
Я не эксперт, конечно, но None - это и есть пустое значение, это и есть аналог nil  в go, null в Java & etc
None это специальный объект типа NoneType. На который есть указатель, под который выделена память и у которого определено поведение при взаимодействии с другими объектами.

В питоне понятие "отсутствия значения", простите за каламбур, отсутствует. Поскольку любая функция вернёт объект, по дефолту - None.
Не знаю как в го, но в Java(null) и c++(nullptr) имеют иное значение и сравнивать напрямую их некорректно.

Для лучшего ознакомления с темой советую погрузиться в управление памятью и то что такое указатели. Даже при работе с более высокоуровневыми языками это полезно =)
источник

II

Ilya Ilyinykh in SPb Python
Ivan Belekhov
None это специальный объект типа NoneType. На который есть указатель, под который выделена память и у которого определено поведение при взаимодействии с другими объектами.

В питоне понятие "отсутствия значения", простите за каламбур, отсутствует. Поскольку любая функция вернёт объект, по дефолту - None.
Не знаю как в го, но в Java(null) и c++(nullptr) имеют иное значение и сравнивать напрямую их некорректно.

Для лучшего ознакомления с темой советую погрузиться в управление памятью и то что такое указатели. Даже при работе с более высокоуровневыми языками это полезно =)
Я не сравнивал их с C++.

В Java(null) - это не инициализированное значение (пустая ссылка), чем это отличается от указателя на nullptr в С++, когда и тот и тот является валидным объектом любого типа и обозначает так скажу пустоту?

В С++ есть ссылки, которые не могут быть пустыми (на сколько я знаю)
источник

IB

Ivan Belekhov in SPb Python
Ilya Ilyinykh
Я не сравнивал их с C++.

В Java(null) - это не инициализированное значение (пустая ссылка), чем это отличается от указателя на nullptr в С++, когда и тот и тот является валидным объектом любого типа и обозначает так скажу пустоту?

В С++ есть ссылки, которые не могут быть пустыми (на сколько я знаю)
Тем, что в с++ понятие типа условно и нужно только чтобы программисты себе в коленки лишний раз не стреляли. Nullptr является указателем на память, а не объектом. Эту разницу я и попытался выделить, когда описывал что такое None в питоне.

Да, ссылки не могут быть "пустыми", так как является alias на некоторую существующую переменную (область памяти). Слова объект я бы тут избегал.

Ну да ладно =)
источник

II

Ilya Ilyinykh in SPb Python
Ivan Belekhov
Тем, что в с++ понятие типа условно и нужно только чтобы программисты себе в коленки лишний раз не стреляли. Nullptr является указателем на память, а не объектом. Эту разницу я и попытался выделить, когда описывал что такое None в питоне.

Да, ссылки не могут быть "пустыми", так как является alias на некоторую существующую переменную (область памяти). Слова объект я бы тут избегал.

Ну да ладно =)
Это не алиас в Java, в разницу между NULL, nullptr даже лезть не хочу =)

https://github.com/srisatish/openjdk/blob/master/jdk/src/share/native/java/lang/Object.c#L60
источник

s

shigarus in SPb Python
Yuliya Volkova
ещё бы 1-2 найти и норм ) чтобы побольше вариативность
я тоже могу рассказать
источник
2020 February 22

YV

Yuliya Volkova in SPb Python
Как относитесь к подобным вещам https://link.medium.com/p0bjHwyhh4?
источник

A

Alexander in SPb Python
По большому счёту разницы особой нет. If/else и доступ по ключу выполняется за O(1). Мне вариант со словарем больше нравится из-за возможности инкапсулировать логику в отдельную сущность
источник

DI

Danil Ivanov in SPb Python
там где хочется использоваться switch case вполне нормально, но если доводить до абсудрда, как например делают борцы за чистый ооп подход.
https://stackoverflow.com/questions/891104/inheritance-or-condition но это конечно надо в абсолют возвести )
источник

SB

Sergei Bratischev in SPb Python
Alexander
По большому счёту разницы особой нет. If/else и доступ по ключу выполняется за O(1). Мне вариант со словарем больше нравится из-за возможности инкапсулировать логику в отдельную сущность
Алгоритмически да, но вычисление хэша, дороже чем сравнение строк.
источник

SB

Sergei Bratischev in SPb Python
Так что это нормально использовать if-else и switch
источник

YV

Yuliya Volkova in SPb Python
Alexander
По большому счёту разницы особой нет. If/else и доступ по ключу выполняется за O(1). Мне вариант со словарем больше нравится из-за возможности инкапсулировать логику в отдельную сущность
А смотрели сколько по времени реально выходит?
источник

YV

Yuliya Volkova in SPb Python
Мне просто интересно, тк на уровне ast это абсолютно разные операции, в одном случает это if без каких либо лямбд и соответственно затрат на это во втором случае зато нет трат на ретурн ноды- она одна
источник