LINUX.ORG.RU

Питонячьи радости

 ,


0

4

Отступы, блин

Был у меня код вида:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # код
    else:
        # ещё код

Код скопипастил из одного места программы в другой. При этом не заметил как отступы нарушились. Ну вы поняли, да? Стало:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # какой-то код
else:
      # ещё код

И вот это мне стоило довольно большого количества потеряного времени. Условие else: стало относиться не к if, а к циклу for. Учитывая, что тело цикла было достаточно длинным, как-то не бросалось в глаза, что else уехал не туда. Мать-перемать, но код после этого даже почти нормально работал.

Еще уже мелочь относительная, но все же, чего-то не подумав захотел поработать с гугл драйвом прямо из своего кода и недолго думая сделал pip install --upgrade google-api-python-client - и это разрушило всё. Благо, что от юзера, а не рута, вылечилось сносом .local и повторной накаткой некоторых модулей

★★★★★

Последнее исправление: anonymous_incognito (всего исправлений: 3)
Ответ на: комментарий от wandrien

Честно говоря, я плохо знаю пхп, так что может не вижу подводных камней. На первый взгляд ничего особо страшного. Ну код на пхп бывает просто фееричен, это да. Но с js такая же фигня, если не хуже. Впрочем я работаю с легаси на перле, меня никаким пыхом не удивишь. Глаз замылился наверно.

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

кажется уже на скале похайповали и переписали всё взад на жабу

Когда мне пришлось выбирать между Java 8 или Scala, я использовал скалу как супер-джаву. А продвинутые функциональные фичи скалы даже изучать не стал. Но сейчас в Java 21 уже много фич из скалы перетащили, и со скалой уже нет смысла заморачиваться.

rupert ★★★★★
()
Ответ на: комментарий от no-such-file

рассказываю

питономакакам

Рассказывает чувак, который походу копипаствой программирует, как и ТС, раз у вас схожие мысли)0

И оба, видимо, даже скопипастить нормально не можете. Но виноват питон, разумеется. Рассказывай ищо короч, я поржу)0

anonymous-angler ★☆
()
Ответ на: комментарий от sanyo1234

IMHO даже Жигули намного лучше, чем Messerschmitt KR200 (Golang)

Завязывай. А тягач 8 колесный ещё лучше, по твоему, потому что у него больше колёс? Мессер это история, кузов машины который ты привёл в пример - действительно неплохой дизайнерский ход, в плане аэродинамики - моё почтение. В отличие, конечно же, от дряной маленькой копипасты с фиата. Поэтому у тебя абсолютно нет вкуса и ты жрешь похапэ

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

Мессер это история, кузов машины который ты привёл в пример - действительно неплохой дизайнерский ход, в плане аэродинамики - моё почтение.

Запорожец тоже ездил и даже относительно проходимый был, но устраивал далеко не всех.

и ты жрешь похапэ

В чём это проявляется?

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

какое-то надувательство

Это нормальный подход к творческому труду. Ты же не мешки таскаешь с почасовой оплатой. Мозги работают 24/7 и твой «отдых» тоже должен оплачиваться.

no-such-file ★★★★★
()
Ответ на: комментарий от sanyo1234

В чём это проявляется?

Как минимум в том что ты снова скатываешься в сравнение запорожца и мессершмитта. Я на Запорожце ездил, довелось даже ремонтировать. И эта заднемоторная машина имеет просто лютые проблемы на стадии инженерных просчетов аэродинамики и термодинамики. Если на улице больше 20 градусов то Запорожец резко превращается в недвижимость из-за проблем с охлаждением. Про его неудачный мотор я вообще молчу

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

нормальными ЯП (C#, Java, Scala, Groovy) и новомодними с каким-то извратным мерзким синтаксисом

Scala

import scala.io.StdIn.readLine

@main def helloInteractive() =
  println("Please enter your name:")
  val name = readLine()

  println("Hello, " + name + "!")

мы точно про скалу говорим?

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

мы точно про скалу говорим?

Что ни так и с чем сравниваем?

IMHO синтаксис чистый и интуитивно понятный, незагрязненный всякими левыми символами, используемыми для написания «запиканых» нецензурных слов типа %$^&()*

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

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

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

А куда делись скобочки?

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

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

Думаю, отсутствие блочных скобок можно пофиксить сообщением в линтере.

Не уверен, насколько бредом является такой ответ Клода:

can missing block brackets be disabled or prohibited by some compiler option?
AP

Yes, Scala compilers typically provide options to control whether missing block brackets are allowed or result in warnings/errors. Here are some examples:

    Scalac (default Scala compiler):
        -Xlint:missing-brace - Warns on missing braces
        -Xfatal-warnings - Turn warnings into errors

    Metals (IDE compiler):
        scala.compile.semantichighlighting.missingBraces - Highlights missing braces
        scala.compile.semantichighlighting.missingBraceAsError - Treats as error

    IntelliJ Scala plugin:
        Report missing brace brackets inspection - Highlights
        Treat missing brace brackets as errors - Errors instead of warnings

So in summary, common options are:

    Linting/highlighting to visually alert on missing braces
    Strict mode to convert warnings into errors
    Dedicated inspection/setting to treat missing braces as errors

This allows enforcing block brackets as per style standards. The defaults are typically just warnings to avoid frustration for new Scala developers. But teams can mandate errors for stricter conventions.

IMHO он плавает в фактах о синтаксисе и опциях различных тулзов, но иногда даёт неплохие идеи для гуглёжки.

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

Ещё интересно, как джависты решают, можно ли использовать в проекте несколько диалектов JVM языков или нет?

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

Какие замиксованные варианты проектов встречаются?

Например, 80% кода на Java, 1% на Clojure, 19% на Scala ? :)

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

Еще и ; поддерживается в качестве разделителей операторов, вообще супер! Всегда стараюсь использовать на Bash (где допустимо по семантике), очень не хватает её в VB.NET :(

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

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

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

namespaces?

и прочиe name_manglings

на всяких биржах вполне трёхбуквий для тикеров хватает

по факту море aba и bab свободных комбинаций которые уникальные при grep ибо в ествественых языках частотность триграммов очень по закону ципфа

qulinxao3 ★☆
()

Используй VS Code либо говнозаменители типа поделия от жидбрейнса. Просто претензию к чему? Ты сидишь в каком-то консольнном говне код правишь, имея про 5 звезд, и, наверное, дебаггер в жизни не запускал, а в резюме себя синьором-архитектистом величаешь

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

Чтобы узнать твой уровень образования и опыт работы.

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

sanyo1234
()