LINUX.ORG.RU

Три операции в одну строчку

 


0

2

Как в python3 засунуть в if присвоение переменной результата функции и проверку этого результата?

if out = my_function(my_arg):

И так далее.

Deleted

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

просто на строку где вставляешь

Ну смотри:

if a:
    b
    c
Я хочу вставить скопированный код, как его выравнивать как идущий после if, или как входящий в if? Я то знаю куда я хочу, как об этом узнает редактор?

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

Не пиши на путоне, ну его нафик с его индентами.

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

Cool til. Ну, тогда кроме дополнительной строчки и явного указания, что scope расспространяется на всё смысла нет.

// не работаю с python просто, это было бы логично

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

это было бы логично

Тогда возникают проблемы с модифицированием переменных из внешнего скоупа функции. Во втором пистоне это вообще стало бы невозможным, в третьем придется перечислять с помощью nonlocal.

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

В пистоне блоки внутри условных конструкций не обладают собственным скоупом:

а можно ещё раз для тех, кто в танке: данная ошибка - это правильно/неправильно, хорошо/плохо? Вроде, всё логично - переменная «c» не инициализирована, поэтому возвращать нечего, о чём Python и говорит...

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

Shift-F6 для rename, tab для сдвига. Или про что ты говоришь? Я пользуюсь PyCharm.

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

Про них. Например, пишешь ты себе код, потом думаешь - какого чёрта, это нужно сделать отдельной функцией, выделяешь, пишешь def superFeature: вставляешь код и приплыли - нужно поправить отступы.

Заюзать IDE, где есть refactoring с вынесением функции\метода религия не позволяет?

Norgat ★★★★★
()
Ответ на: не позволяет от lazyklimm

Вот я ещё буду менять свой уютненький емакс на чьи-то жирные поделия.

А, ну тогда страдай или напиши себе сам функцию рефакторинга.

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

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

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

Гнидо так решил потому что. В гнидобейсеке это нинужна.

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

Проблема в том, что в пистоне объявление переменных и присваивание им значения не разделены

да, иногда это бывает полезно. Но вроде бы, в 3-м собирались что-то такое сделать (типа типизации)

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

Автоотступы в питоне невозможны.

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

Нет именно редактор, vim умеет вставлять с соответствующим отступом если скоуп поменялся. За emacs не скажу.

В питоновском коде невозможно отформатировать отступы автоматически, редактор тут ни при чем.

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

религия не позволяет

И так на каждый пук? Я тут не только этот пример приводил, только что-то ничего внятного, окромя «мы двигаем блоки влево-вправо руками» я не услышал, что не удивительно. Питон не может в автовыравнивание, наличие костылей на отдельно взятые случаи никак не решает проблему в целом.

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

Нет именно редактор, vim умеет вставлять с соответствующим отступом если скоуп поменялся.

как? // бывалый вимер-питонщик которому бы такая магия очень пригодилась

сейчас я пасчу блок, выбираю его через `[v`], меняю его интендацию как надо вручную. можно конечно накидать функцию которая бы реинтеднидали блок перед вставкой чтобы он был вровень с предидущей/следующей строкой, хммм.

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

Самое забавное, что ты пишешь в редакторе, который позволяет избавиться от такой обезьяньей работы, но не делаешь этого. Как в том анекдоте про человека с пилой.

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

делающие так

К счастью, с помощью indent это легко возвращается в нормальный вид.

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

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

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

надо каждую строчку руками двигать.

Не надо. Ты копируешь уже отформатированный кусок.

A1
()

Пожалуйста, не ставь присваивания в условиях. Такой код тяжело дебажить.

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

Дебажность ухудшается. Поставишь точку останова на этом ифе, а оно залезет в стек функций штук на 10.

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

vim умеет вставлять с соответствующим отступом если скоуп поменялся

Тем не менее, всё равно нужно сначала встать на нужный отступ.

Тем не менее, всё равно нужно сначала вставить открывающую скобку.

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

всё равно нужно сначала вставить открывающую скобку.

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

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