@ru_python

Страница 2747 из 9768
Malikov
28.04.2017
13:54:13
тупанул просто((

Roman
28.04.2017
13:59:20
- у вас есть такой же, но без re? - нет! - будем искать...

Michael
28.04.2017
14:02:53
Всем привет, нужен совет. Есть две функции, которые отличаются совсем немногим - во второй на 3-4 строчки больше и вместо одного элемента она возвращает кортеж из двух элементов. Как их можно изящнее реализовать? Пути решения: 1. Передавать в общую функцию аргумент, от которого зависит, что мы будем делать. В тело функции добавить условия. - Но эта функция будет выполняться много раз и проверять if при каждом вызове не хотелось бы. 2. Просто скопировать первую функцию и дописать то, что нужно. - Слишком много повторяющегося кода. Но если промежуточные действия тоже обернуть в функции, то эту ситуацию можно немного улучшить. 3. Как-то хитро использовать декораторы. - Пока не могу придумать, как.

Igor
28.04.2017
14:03:38
а нельзя это в одну функцию запихнуть?

Google
Igor
28.04.2017
14:04:02
раз 3-4 строчками отличаются, можно добавить условие какое-нибудь

Roman
28.04.2017
14:04:28
Если нужно изменить работу функция не изменяя самой функции - используй декоратор

Michael
28.04.2017
14:05:38
раз 3-4 строчками отличаются, можно добавить условие какое-нибудь
Можно, но если она будет запускаться миллион раз, не сильно ли это скажется на быстродействии?

Если нужно изменить работу функция не изменяя самой функции - используй декоратор
Я тоже думал в сторону декораторов, но пока не знаю, как их приспособить.

Igor
28.04.2017
14:06:16
timeit в руки и вперед мерять

как раз по умолчанию 10000-100000000 раз гоняет

оборачивание в декоратор еще дороже обойдется

Michael
28.04.2017
14:07:46
timeit в руки и вперед мерять
Тоже верно, померяю, спасибо.

Геннадий
28.04.2017
14:07:48
В некоторых ситуациях простой копипастинг не такой уж и ужасный. Если метод практически гарантировано устоялся, переписывать его не планируется, размер кода не критичен, а к производительности большое требование - велком. Но как правило такие штуки возникают из-за неоптимизированной архитектуры.

Aragaer
28.04.2017
14:08:37
копипастинг это зло когда "а, я не знаю, что тут такое, но вроде работает"

Геннадий
28.04.2017
14:09:27
Через полгода в любом проекте начинается "а я не помню как это работает" :))

Если в тетрадке и для личного, и для обучения - тогда а) я бы посмотрел "сверху" на архитектуру, с целью вообще посмотреть почему так получилось и как может взглянуть на предмет с другой стороны, составить по другому классы (если это ООП). Если речь про обучение, до декораторы я бы не использовал со смыслом "расширение функционала метода", декораторы всё-таки про смысл "изменение свойств метода". Тут скорее разбитие кода на части и последовательное выполнение методов.

Google
Igor
28.04.2017
14:22:16
и все это неправда
понеслась пизда по кочкам

Nikolay
28.04.2017
14:22:27
Artem
28.04.2017
14:23:13
не все неправда

Сложно поспорить с тем, что "железо опять же очень приятное"

Igor
28.04.2017
14:23:28
на том, что брю лучше, я подавился
я тоже сначала подавился, а потом подумал, чем он хуже хочешь - компиль из исходников, хочешь - забирай бинарники. по умолчанию - бинарники. куча дружелюбных опций в пределах пакетов, не надо никакого ./configure --with.

репа на гитхабе -> софт доезжает быстро, бинарники собираются автоматически ботами

гитхаб? хипстерство ебаное, да. но актуальность репозитория вполне себе неплохо поддерживается.

Nikolay
28.04.2017
14:24:52
он хуже тем, что это сраный костыль на руби, который официальные релизы обмазывает кучей патчей и пытается кое-как не вступить в конфликт с системными либами и XCode

Igor
28.04.2017
14:24:53
хочешь - храни несколько версий пакета и переключайся между ними как тебе угодно

Oleksandr ror191505
28.04.2017
14:25:20
расскажите как обновить питончик через брю в маках нормально?

Igor
28.04.2017
14:25:20
> кучей патчей пиздёж > кое-как не вступить в конфликт с системными либами и XCode такое редко бывает

Nikolay
28.04.2017
14:25:24
по сравнению с нормальной пакетной системой это - феерическое говно, но без него было бы еще хуже, я согласен

Nikolay
28.04.2017
14:25:32
> пиздёж факт

Igor
28.04.2017
14:25:39
Oleksandr ror191505
28.04.2017
14:25:41
brew upgrade python3?
второй, который уже есть в системе

Nikolay
28.04.2017
14:25:45
открой практически любой рецепт

Igor
28.04.2017
14:25:54
открой практически любой рецепт
ты гонишь - ты и открывай :)

Google
Igor
28.04.2017
14:25:59
и это не "обнбовить питончик"

это "поставить еще один питончик"

Nikolay
28.04.2017
14:26:11
ты гонишь - ты и открывай :)
так это ты сказал, что пиздеж - ты и подтверждай

Oleksandr ror191505
28.04.2017
14:26:34
нахрена мне две копии одного софта?

Igor
28.04.2017
14:26:47
вот этим брю и хуже
чем?? Да, это нестандартный менеджер пакетов

Ты ебанулся? Нахрена брю трогать системный питон?

Поговори вон с энчантером, че будет, если ставить че-нибудь в системный питон без венвов

Oleksandr ror191505
28.04.2017
14:27:22
а нахрена мне ставить из брю второй раз то, что итак уже есть

Igor
28.04.2017
14:27:42
а нахрена мне ставить из брю второй раз то, что итак уже есть
ты сказал что хочешь поставить, я тебе сказал как, ты доебался до такой хуйни, серьезно щас?

так это ты сказал, что пиздеж - ты и подтверждай
Ок, погнали. https://github.com/Homebrew/homebrew-core/tree/master/Formula/zsh.rb - 0 патчей

Nikolay
28.04.2017
14:27:59
а нахрена мне ставить из брю второй раз то, что итак уже есть
системный питон тебе не нужен от слова вообще

Oleksandr ror191505
28.04.2017
14:28:07
Igor
28.04.2017
14:28:07
https://github.com/Homebrew/homebrew-core/blob/master/Formula/nano.rb - 0 патчей

Igor
28.04.2017
14:28:26
это сделано максимально пиздато, как могли сделать левые люди, не связанные с эпплом

https://github.com/Homebrew/homebrew-core/blob/master/Formula/gcc.rb - опа, один патч! целый один! для такого проекта, как гцц!

Google
Igor
28.04.2017
14:29:21
В общем, Николай, пока ты проигрываешь

Nikolay
28.04.2017
14:29:36
Ок, погнали. https://github.com/Homebrew/homebrew-core/tree/master/Formula/zsh.rb - 0 патчей
https://github.com/Homebrew/homebrew-core/blob/master/Formula/coreutils.rb "качаем в процессе какую-то херню из macports, размазываем ровным слоем по системе"

Igor
28.04.2017
14:30:05
Для yosemite. Это старая версия. Этот патч сейчас никому накатываться не будет.

Nikolay
28.04.2017
14:30:05
Oleksandr ror191505
28.04.2017
14:30:06
https://github.com/Homebrew/homebrew-core/search?utf8=%E2%9C%93&q=+patch+do&type=

Nikolay
28.04.2017
14:30:25
брю решает задачу установки пакетов на макос, криво, через жопу, но решает

Admin
ERROR: S client not available

Nikolay
28.04.2017
14:30:40
но сравнивать его с нормальными пакетными менеджерами - это смешно

Oleksandr ror191505
28.04.2017
14:30:43
это сделано максимально пиздато, как могли сделать левые люди, не связанные с эпплом
никто не спорит с этим тезисом. сделано неплохо, но это в любом случае хуже, чем нормальный пакетный менеджер

Igor
28.04.2017
14:30:55
ОК, какие плюсы "нормального пакетного менеджера"?

и кстати

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=coreutils-progress-git

лол

Nikolay
28.04.2017
14:31:29
Igor
28.04.2017
14:31:30
source=("git+git://git.sv.gnu.org/coreutils.git" '0001-copy-Add-a-progress-option.patch' '0002-copy-fix-missing-progress-check.patch' '0003-copy-fix-two-potential-divs-by-zero.patch')

не патчит исходники на лету?
че, арчлинукс теперь тоже не нужен?

Nikolay
28.04.2017
14:32:08
че, арчлинукс теперь тоже не нужен?
а в арчлинуксе появилось то, что можно назвать "пакетным менеджером"?

сейчас мы дойдем до того, что emerge начнем так называть

Igor
28.04.2017
14:32:19
это ты серьезно щас?

Google
Igor
28.04.2017
14:33:10
не патчит исходники на лету?
алоэ, блядь. открывай еще раз и посмотри на замечательные строчки

https://github.com/Homebrew/homebrew-core/blob/master/Formula/coreutils.rb#L42-L44

знаешь, что это значит?

это значит, что он скачает бинарники и не будет ничего патчить сам

Nikolay
28.04.2017
14:33:44
нет, просто в современном мире основных форматов пакетов два - rpm и deb. Остальное чаще всего попытка совместить бинарно совместимые elfы и патчинг исходников.

это значит, что он скачает бинарники и не будет ничего патчить сам
ага, то есть выше ты слово patch глазами не видишь

Igor
28.04.2017
14:34:17
чувак. давай еще раз

я лучше знаю, как homebrew работает ;)

Nikolay
28.04.2017
14:34:34
чувак. давай еще раз
https://github.com/Homebrew/homebrew-core/blob/master/Formula/coreutils.rb#L34-L37

Igor
28.04.2017
14:34:55
патчи не будут накатываться, если 1) ты не собираешь из исходников (а ты не собираешь по умолчанию, т.к. ниже указаны бутылки)

2) (в данном случае) если у тебя >= yosemite

Проксимов
28.04.2017
14:35:08
Ох, прям как в старые добрые

Igor
28.04.2017
14:35:13
т.е. три последние версии ОС

Nikolay
28.04.2017
14:35:41
2) (в данном случае) если у тебя >= yosemite
и как это меняет тот факт, что это набор сраных костылей?

по твоей логике, можно и Ansible использовать, как пакетный менеджер

Igor
28.04.2017
14:36:12
и как это меняет тот факт, что это набор сраных костылей?
так ты мне сам говоришь что dpkg/yum или че там ничего не патчат, а homebrew - кококо - патчит

Nikolay
28.04.2017
14:36:15
а на деле такой вот логики в пакетном менеджере в принципе быть не должно

Vasiliy
28.04.2017
14:36:26

Страница 2747 из 9768