
Игорь
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

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

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

Игорь
07.05.2017
14:36:33

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

Eldar
07.05.2017
14:40:39

Игорь
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" - так автор перевел ?

Oleksandr ror191505
07.05.2017
19:05:33

Stanislav
07.05.2017
19:05:39

Nikolay
07.05.2017
19:05:50

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

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

Oleksandr ror191505
07.05.2017
19:07:54

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

Nikolay
07.05.2017
19:08:57

Oleksandr ror191505
07.05.2017
19:09:51

Google

Сергей
07.05.2017
19:09:54

Nikolay
07.05.2017
19:11:14

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