LINUX.ORG.RU
ФорумTalks

Почему у питона батарейки севшие?

 ,


2

2

ну вот, подфартила шабашка - надо накропать на джанге унутренний сервис.

Ну ладно там все динамическое - обмазался тайпхинтами, стало чуть похоже на божественную яву. Но ёмаё чуть шаг в лево - надо все делать руками.

- объект в json не засовывается (только словарь)

- тип надо указывать, в комментарии! # type: RageString

- модель джанги хитронаговнякана так что ide пишет, мол Model.objects - в первый раз вижу

- снять дамп потоков? фиг вам!

- прервать поток если приложение тушат? лови сигналы и катай солнце вручную!

И эти люди говорят про батарейки!

Deleted

Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Zenom

А дело вовсе не в том, что меня устроит

Мсье знает некие тайны.

dmxrand
()
Ответ на: комментарий от i-rinat

Это не строгая типизация, это строгое следование IEEE 754.

RazrFalcon ★★★★★
()
Ответ на: комментарий от dmxrand

Python строгая []+{} -> Error

Это уже частично строгая.

Если язык позволяет производить действия над примитивами разных типов, ака1 + 1.5, то это слабая типизация. В том же Rust так делать нельзя.

С другой стороны, не ясно что делать с пользовательскими типами. В том же C++ я могу реализовать допустимые перегрузки и разрешить суммирование метров и километров (к примеру).

В то же время, в C++ я могу сделать обёртки над примитивами, запрещающие автоматическое приведение типов. И пример выше перестанет работать.

В целом, вы путаете строгую и статическую типизации. Python не любят именно аз динамическую типизацию, в противовес статической.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

В том же C++ я могу реализовать допустимые перегрузки и разрешить суммирование метров и километров (к примеру).

Так это ты осознанно сделаешь. Хотя мне перегрузка не нравится. Тут можно накосячить с чужим кодом. Уж лучше фабрики классов делать.

Да блин динамическая типизация просто позволяет сделать некий контейнер и пихать в него все. Не делая 10 контейнеров для каждого типа. Да может рухнуть в рантайм когда интерпретатор обнаружит в нем не то, что ожидал. А статика это еще на этапе компиляции схавает. Но это и в JS и в Perl и в Ruby.

dmxrand
()
Ответ на: комментарий от dmxrand

Да блин динамическая типизация просто позволяет сделать некий контейнер и пихать в него все.

Не совсем. Никто не мешает такое же сделать в статическом ЯП. Может быть немного сложнее, но в целом тот же результат с меньшим оверхедом. К примеру QVector<QVariant>.

Так это ты осознанно сделаешь.

Делаю - да. Но само приведение будет неявное, что не всегда удобно.

Пример:

QString str;
str.append("a");
str.append('b');
str.append(0x63);
qDebug() << str; // abc

Проблема динамической типизации - отсутствие рефакторинга.

RazrFalcon ★★★★★
()

объект в json не засовывается (только словарь)

А pickle для твоей задачи не получится использоваться? Это родной способ сериализации и десериализации объектов в Python. Довольно удобный.

тип надо указывать, в комментарии! # type: RageString

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

Crocodoom ★★★★★
()
Ответ на: комментарий от Crocodoom

А pickle для твоей задачи не получится использоваться?

Он для Web пишет.

dmxrand
()
Ответ на: комментарий от RazrFalcon

Да причем тут фанбои. Я не ору что динамика это лучшее. Я просто возражаю, что и в статике есть проблемы. И я возражаю на вопли фанбоев статики. Не нравится не кушайте. Тут я привел примеры из C и тут же мне сказали, что C гавно, а не гавно SML. Ну а чего все пишут не на SML?

dmxrand
()
Ответ на: комментарий от dmxrand

Я просто возражаю, что и в статике есть проблемы.

Ну есть, но это не может быть возражением ни в разрезе плюшек статической проверки типов, ни в разрезе того что ты путаешь статическую и строгую типизацию.

ya-betmen ★★★★★
()

объект в json не засовывается (только словарь)

А вы что сделать-то пытаетесь?

Если нужно передать объект полностью, например в другой питон, или сохранить «на будущее» — пользуйтесь сериализатором pickle.

Или тупо выборку из БД надо отдать по HTTP? Дык там в жанге вокруг данных стопицот оберток, и уже есть готовый сериализатор всей этой беды. Ну а чтобы сперва не заворачивать, а потом не разворачивать, используйте специальный QS, который возвращает список словарей, который легко сериализовать в json.

Или что, json лучший формат для сериализации объектов по умолчанию? Вроде нет, не лучший, почему вы считаете что это непременно нужно?

gistart
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.