@ru_python

Страница 2786 из 9768
Игорь
07.05.2017
14:30:09
эксперты генераторов, а сворачивается ли вот такое? for key in any_dict: if key not in any_list: return

Sergei
07.05.2017
14:31:07
Кто-нибудь знает как в питоне 3 получить количество доступных аппаратных потоков?

Игорь
07.05.2017
14:32:35
Sergei
07.05.2017
14:33:02
лол. аппаратных потоков? ты из будущего?

Google
Eldar
07.05.2017
14:33:29
лол. аппаратных потоков? ты из будущего?
гыы, он мб про видеокарту говорит:D

Игорь
07.05.2017
14:33:45
а не, я спутал с глубиной рекурсии

Eldar
07.05.2017
14:34:55
но return меня смущает в любом случае

Игорь
07.05.2017
14:36:33
но return меня смущает в любом случае
ну это проверка, если не проходит, то дальше метод выполнять нет смысла. вот отсюда и return

Eldar
07.05.2017
14:38:30
any_set = frozenset(any_list) for key in any_dict: if key not in any_set: returnтак должно быстрее работать

можно еще такой варик: frozenset(any_dict.keys()) - frozenset(any_list)

Игорь
07.05.2017
14:39:55
Игорь
07.05.2017
14:42:02
еще можно местами проверки поменять
эммм. там одна проверка в этом цикле, что на что менять?

Eldar
07.05.2017
14:42:37
Vasiliy
07.05.2017
14:43:02
вот это существенно быстрее в общем случае

Eldar
07.05.2017
14:43:44
но тогды не понятно почему вопрос был к экспертам генераторов

Google
Игорь
07.05.2017
14:48:12
Nikolay
07.05.2017
18:52:59
Такой вопрос. Вот есть у меня метод в классе, который использует около сотни раз другой метод класса, подставляя каждый раз другой аргумент. Какая практика лучше: оставить так, как есть, или сделать функцию в методе, чтобы этот метод использовал вложенную функцию около сотни раз вместо второго метода?

Грубо говоря, есть a_method и b_method, a_method использует b_method сотню раз. Лучше оставить или сделать так, чтобы a_method использовал a_func (которая будет создана в a_method)?

Oleksandr ror191505
07.05.2017
18:58:33
не надо использовать "функции в методах" без крайней необходимости

Nikolay
07.05.2017
18:59:11
не надо использовать "функции в методах" без крайней необходимости
Гугл говорит, что вложенные функции - это хорошо

Поэтому и спрашиваю совет здесь, как лучше поступить

Oleksandr ror191505
07.05.2017
19:00:14
Nikolay
07.05.2017
19:03:27
Покажи мне это
Перевод из советов Google по кодированию на Python "Вложенные фукнции имеют доступ только на чтение к переменным, определенным в родительской области. Плюсы Делает возможным определение вспомогательных классов и функций, которые будут использованы только внутри очень ограниченного пространства. Соответствует принципу ADT. Минусы Экземпляры вложенных или локальных классов не могут быть сериализированы. Решение Они хороши." https://habrahabr.ru/post/179271/

Stanislav
07.05.2017
19:04:47
Кодирование

Во слово

Nikolay
07.05.2017
19:05:15
Кодирование
"Советы Google по кодированию на языке Python" - так автор перевел ?

Nikolay
07.05.2017
19:05:50
Тогда уж "кодингу" лучше
звучит лучше, согласен

Сергей
07.05.2017
19:06:41
Лучше переводить "по программированию"

Nikolay
07.05.2017
19:07:38
Я как-то не со всеми пунктами согласен
У меня вроде как подходящий случай: вложенная функция будет иметь доступ только к переменным в родительской области, использована будет только внутри очень ограниченного пространства. Вот не знаю, нужна ли она все-таки.

Сергей
07.05.2017
19:08:02
Насчет методы vs вложенные функции, я думаю, что разницы не будет. Во всяком случае сколь угодно существенной

Nikolay
07.05.2017
19:08:57
Чем это лучше, чем просто метод класса?
Разницы существенной не вижу, поэтому я здесь и задал вопрос. Как по мне, не будет лишнего метода, использовать его отдельно через класс я не собираюсь.

Google
Сергей
07.05.2017
19:09:54
Разницы существенной не вижу, поэтому я здесь и задал вопрос. Как по мне, не будет лишнего метода, использовать его отдельно через класс я не собираюсь.
Если этот метод нужен только для другого метода и больше нигде, то лучше вложенную функцию использовать. Так как этот код относится к реализации самого метода, нежели класса

Сделай его "приватным"
Тут же не вопрос как не дать доступ из вне, разве нет?

Oleksandr ror191505
07.05.2017
19:12:21
Вложенные функции портят читабельность

Я не вижу причин их использования, если это не необходимо

Сергей
07.05.2017
19:12:39
Спорно

Oleksandr ror191505
07.05.2017
19:12:41
Никаких особенных приемуществ они не дают

Игорь
07.05.2017
19:15:44
но декораторы это тоже вложеные функции

Проксимов
07.05.2017
19:17:26
Игорь
07.05.2017
19:18:04
К чему эта фраза?
к полезности вложеных функций

Проксимов
07.05.2017
19:19:22
к полезности вложеных функций
Тут про конкретный случай речь, а не про декораторы

Игорь
07.05.2017
19:21:30
тут случай похож на использование лямбд.

Сергей
07.05.2017
19:24:34
тут случай похож на использование лямбд.
Согласен, в данном конретном случае больше пользы от вложенных функций

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

Проксимов
07.05.2017
19:25:23
Декораторы можно и классом описать

Сергей
07.05.2017
19:25:45
Да, конечно

Но это тот случай, когда от вложенности функций читабельность лучше, а не хуже

Проксимов
07.05.2017
19:29:21
Но ты же специальную обёртку используешь, а не в чистом виде

Danila
07.05.2017
22:34:24
Народ Саммерфилд пишет что если при сравнении объектов оба возвращают NotImplemented, то рэйзится эксепшн я запускаю https://pastebin.com/3mpV7YLY и нифига не рейзится

Что не так ?

Google
Nikolay
07.05.2017
22:35:21
какая версия питона?

Danila
07.05.2017
22:35:24
3

Nikolay
07.05.2017
22:37:30
если я ничего не путаю, то в третьем у тебя сравнение фоллбэчится до сравнения id(a) == id(b)

Danila
07.05.2017
22:37:59
не понял

Nikolay
07.05.2017
22:38:20
в общем, в 3-м у тебя, как ни пиши класс, он неявно наследуется от object, а там определена какая-то дефолтная операция сравнения

Admin
ERROR: S client not available

Nikolay
07.05.2017
22:38:30
во втором попробуй запустить

Danila
07.05.2017
22:39:10
тоже самое

Artem
07.05.2017
22:41:06
ты ретурнишь

а надо рейзить

Danila
07.05.2017
22:42:18
Опечатка Другой состоит в том, чтобы возбуждать исключение TypeError для обозначения попытки сравнения с неподдерживаемым типом, например, if not isinstance(other, Point): raise TypeError(). Третий способ (который, с точки зрения языка Python, является наиболее правильным) заключается в следующем: if not isinstance(other, Point): return Notlmplemented. ?

Это из Саммерфилда

Artem
07.05.2017
22:44:20
Я понял, забавно, никогда этим не пользовался и видимо не обращал внимания в чужом коде

Danila
07.05.2017
22:44:57
Ну вот странно как то получается

Artem
07.05.2017
22:45:19
еку вызываются

Danila
07.05.2017
22:45:44
еку ?

Artem
07.05.2017
22:47:04
eq

Danila
07.05.2017
22:47:58
eq вызывается, я проверял дебагером

Artem
07.05.2017
22:48:09
А ну ясно

Саммерфилд вряд лит пишет, что рейзится эксепшен

Google
Artem
07.05.2017
22:48:40
тут семантика другая

Danila
07.05.2017
22:50:20
Вот копипаст из книги Если необходимо избежать сравнения в случаях, когда это не имеет смысла, можно использовать несколько подходов. Один из них состоит в использовании инструкции assert, например, assert isinstan- ce(other, Point). Другой состоит в том, чтобы возбуждать исключение TypeError для обозначения попытки сравнения с неподдерживаемым типом, например, if not isinstance(other, Point): raise TypeError(). Третий способ (который, с точки зрения языка Python, является наиболее правильным) заключается в следующем: if not isinstance(other, Point): return Notlmplemented. В этом третьем случае, когда метод возвращает Notlmplemented, интерпретатор попытается вызвать метод other. eq (self), чтобы определить, поддерживает ли тип other сравнение с типом Point, и если в этом типе не будет обнаружен такой метод или он также возвращает Notlmplemented, интерпретатор возбудит исключение TypeError. (Обратите внимание, что значение Notlmplemented может вернуть только переопределенный специальный метод сравнения - из тех, что перечислены в табл. 6.1.)

Прям прямым текстом пишет что рейзится должен эксепшн

Artem
07.05.2017
22:53:53
Клево

Но не работает почему-то

Danila
07.05.2017
22:54:29
а какой форум по питону самый движовый ?

Artem
07.05.2017
22:54:36
во втором вообще интересно



ну вообще тут бывает довольно движово, но не в 2 часа ночи в праздник

Danila
07.05.2017
22:55:44
да у меня подгорает, хочу понять что к чему )

Artem
07.05.2017
22:56:58
напиши на стековерфлоу

Danila
07.05.2017
22:57:50
да, это варик

Artem
07.05.2017
22:59:08
в пайпае 2.7 тоже не работает

но без A U U A, просто A U

как в 3.6

Danila
07.05.2017
23:00:27
Кто то тоде ебался http://stackoverflow.com/questions/40780004/returning-notimplemented-from-eq

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