@spbpython

Страница 310 из 785
Nikolay
02.03.2017
15:47:53
хотя у нас не так давно был очень веселый срач

GNU/Docker
02.03.2017
15:49:05
по сути что-то типа namedtuple
https://github.com/python/cpython/blob/3.6/Lib/collections/__init__.py#L307

Nikolay
02.03.2017
15:49:37
когда фронтендер на меня наезжал, мол, ‘ваш питон с бэкенда возвращает json с названиями полей типа “pizza_slices”, а на моей стороне падает линтер, потому что мне нужно response.pizzaSlices в камелкейсе'

и как результат он требовал переименовать поля в SQLAlchemy-модели и положить болт на pep8, потому что в js криво настроен парсинг json

Google
Nikolay
02.03.2017
15:50:39
https://github.com/python/cpython/blob/3.6/Lib/collections/__init__.py#L307
что ты хотел сказать этой ссылкой?

он линтер в рантайме чтоли юзает?
он наркотики тяжелые юзает, по-моему

GNU/Docker
02.03.2017
15:51:36
что ты хотел сказать этой ссылкой?
Видел как написан namedtuple?

Nikolay
02.03.2017
15:51:49
Видел как написан namedtuple?
видел, и? я имел в виду, по поведению похоже

GNU/Docker
02.03.2017
15:52:27
Не очень что-то.

Danil
02.03.2017
15:52:45
он наркотики тяжелые юзает, по-моему
а догнал, он к объектам обращаться через snake_case не хочет. Что ему мешает преобразовывать ответ сервера на лету? Или он их тех, которые умеют только плакать? =)

Nikolay
02.03.2017
15:53:20
Не очень что-то.
очень что-то

но в целом нет, конечно

GNU/Docker
02.03.2017
15:53:43
Ясно.

Nikolay
02.03.2017
15:54:42
но когда чувак просит забить на pep8, потому что у него в джаваскрипте ругается линтер - это весело

Google
Nikolay
02.03.2017
15:55:59
а еще один из WATов моих любимых починили в третьем питоне

Danil
02.03.2017
15:56:00
Nikolay
02.03.2017
15:56:11
ты ему отвечал что тогда линтер будет ругаться у тебя? )
я его послал просто лесом, чего с дураком спорить

это не мой фронтендщик был, просто чувак в чате

пытался мне таким образом доказать несостоятельность pep8

Danil
02.03.2017
15:57:15
мм.. так себе аргументация

Serge
02.03.2017
15:57:56
Так почему простое наследование с переопределением __init__ от frozenset не работает, а от list работает? class mylist(list): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) mylist([1,2,3,4]) [1, 2, 3, 4]
конкретно в данном случае, можно сразу по ошибке отверждать одно - у родительского класса нет своего __init__ и срабатывает __init__ от object, который не умеет принимать никакие аргументы

Nikolay
02.03.2017
15:58:26
а еще один из WATов моих любимых починили в третьем питоне
а тут я вот про что - TypeError: function ‘foo’ accepts at least 2 arguments (2 given)

эту пургу починили в Python 3, но до сих пор весело спрашивать на собеседованиях

GNU/Docker
02.03.2017
15:59:15
О господи, ты ещё и собеседования проводишь?

Eugene
02.03.2017
15:59:40
можешь, но это противоречит дзену питона
Не противоречит http://anandology.com/python-practice-book/iterators.html Тут даже пример есть zrange

Serge
02.03.2017
16:01:07
Valery
02.03.2017
16:02:01
ну, как-то немного рвет шаблон все-таки, имхо
А какая разница, если стандартный способ использовать итератор — это for, а внутри for тебе нет особо дела, что тебе вернули по __iter__?

Nikolay
02.03.2017
16:02:21
в случае питона, имхо, объект с заданным __new__ - метакласс, потому что его инстансы - это классы

Eugene
02.03.2017
16:03:28
конкретно в данном случае, можно сразу по ошибке отверждать одно - у родительского класса нет своего __init__ и срабатывает __init__ от object, который не умеет принимать никакие аргументы
Дальше можно раскручивать, а почему нет, а как экземпляр инициализируется? И тд. Но ведь странно же и не понятно, почему так. Понятно, что new и все такое, но ведь костыли же

Google
GNU/Docker
02.03.2017
16:04:40
Ооо.

И вот весь питоний имплисит оправдывается наличием документации:)

Serge
02.03.2017
16:04:45
но когда чувак просит забить на pep8, потому что у него в джаваскрипте ругается линтер - это весело
да нет же. он тебя этого не просил. кто тебе мешал сериализатор свой нахачить?

Nikolay
02.03.2017
16:05:13
да нет же. он тебя этого не просил. кто тебе мешал сериализатор свой нахачить?
никто. Но зачем я в одном языке буду городить костыли для другого?

Serge
02.03.2017
16:05:19
GNU/Docker
02.03.2017
16:05:22
А вообще можно и в код посмотреть...

Nikolay
02.03.2017
16:05:51
но на практике с такими вещами не очень часто сталкиваешься

а когда сталкиваешься - есть, куда посмотреть

GNU/Docker
02.03.2017
16:06:34
Странная практика.

GNU/Docker
02.03.2017
16:06:51
Периодически на какое-нибудь новое говно натыкаюсь которое думал знаю как работает.

Serge
02.03.2017
16:07:15
это вопрос терминологии
чего??? это вопрос в каком из двух класов это происходит:) object.__new__ и type.__new___ - вообще разные методы;)

Eugene
02.03.2017
16:08:12
Ну вот нужно мне свое неизменяемое множества, нафига мне интерфейс реализовывать со всеми этими операциями над множествами?

Serge
02.03.2017
16:08:13
в случае питона, имхо, объект с заданным __new__ - метакласс, потому что его инстансы - это классы
и после этого тебя удивляет, что нас удивляет, что ты проводишь собеседования??? не рассказывай этого никому больше. расскажешшь кандидату хорошему, потом он к вам не пойдет и тебе не у кого учиться будет

GNU/Docker
02.03.2017
16:08:45
Ууу.

Nikolay
02.03.2017
16:08:57
слушай, можно как угодно крутить терминологией

Google
GNU/Docker
02.03.2017
16:09:01
Самое плохое когда не замечаешь.

Nikolay
02.03.2017
16:09:11
я согласен, что может быть свой __new__, который делает что угодно вообще

Serge
02.03.2017
16:09:16
никто. Но зачем я в одном языке буду городить костыли для другого?
это контракт, его можно сделать удобным всем. и та сторона, на который это сделано - сильнее и взрослее;)

Nikolay
02.03.2017
16:09:25
но самый частый вариант его использования - это метаклассы

Nikolay
02.03.2017
16:09:55
это контракт, его можно сделать удобным всем. и та сторона, на который это сделано - сильнее и взрослее;)
так уже ж есть контракт - json называется. Но, в итоге, я думаю, ему пошли навстречу и поправили генерацию

нельзя
ну, ты же крутишь :)

там даже проблема была не в том, что имена полей некрасивые

Serge
02.03.2017
16:10:20
но самый частый вариант его использования - это метаклассы
бля! это другой метод, другой. с другой сигнатурой и другим применением.

Nikolay
02.03.2017
16:10:27
там проблема была в том, как он предлагал это решать

Admin
ERROR: S client not available

Serge
02.03.2017
16:10:47
ну, ты же крутишь :)
перечитай тред.

Eugene
02.03.2017
16:10:49
А вот __slots__ это костыль или элегантное решение? :))

Serge
02.03.2017
16:11:14
Nikolay
02.03.2017
16:11:26
бля! это другой метод, другой. с другой сигнатурой и другим применением.
это просто метод, применение у него в общем случае одно и то же, потому он и встроенный

но можно его переопределить и сломать немного

Serge
02.03.2017
16:12:02
это просто метод, применение у него в общем случае одно и то же, потому он и встроенный
поставь себе напоминалку с копией этого треда на +пару лет к сегодняшнему числу

GNU/Docker
02.03.2017
16:12:05
блблб

Nikolay
02.03.2017
16:13:01
поставь себе напоминалку с копией этого треда на +пару лет к сегодняшнему числу
в смысле? ты мне пишешь, что object.__new__ и type.__new__ - это разные методы, я тебе пишу - разумеется, разные по реализации, но суть, для чего нужен метод __new__, от этого не меняется

и обе реализации ее не нарушают

Google
Nikolay
02.03.2017
16:13:34
если ты считаешь, то метод __new__ - это какая-то абстрактная херня, которую можно крутить, как хочешь - то ты неправ

Nikolay
02.03.2017
16:14:24
только они для разного, есть такой ньюанс
что значит для разного? type - это object тоже, если что

Eugene
02.03.2017
16:14:41
Ладно вам, само наличие метаклассов в языке где явное лучше неяаного - это троллинг

Nikolay
02.03.2017
16:14:55
какова тогда суть, если методы по реализации разные?
суть - конструировать экземпляры, фабрика, метаклассы

Ладно вам, само наличие метаклассов в языке где явное лучше неяаного - это троллинг
ну так есть то, что встроено, и есть то, что можно поверх накрутить :)

GNU/Docker
02.03.2017
16:15:37
синглтон, мамка поттера, сингулярность, абстракции

Nikolay
02.03.2017
16:15:40
в том числе и неявную гадость

Roman
02.03.2017
16:15:58
А вот __slots__ это костыль или элегантное решение? :))
как хорошо, что в pypy они бесполезны.

Nikolay
02.03.2017
16:16:14
синглтон, мамка поттера, сингулярность, абстракции
я смотрю, ты питон прям знаешь хорошо)

GNU/Docker
02.03.2017
16:16:37
Я плохо знаю твой набор слов.

Valery
02.03.2017
16:16:57
Ладно вам, само наличие метаклассов в языке где явное лучше неяаного - это троллинг
Там есть оговорка, что очевидность — понятие относительное ? Явность, видимо, тоже))

Serge
02.03.2017
16:17:25
что значит для разного? type - это object тоже, если что
и что теперь? только вот язык рассчитывает на разные сигнатуры. сигнатура type.__new__ прибита гвоздями отдельно от object.__new__ и всех его наследников и type и тот же frozenset - это параллельные наследники object

Nikolay
02.03.2017
16:17:37
GNU/Docker
02.03.2017
16:17:55
питон, видимо, тоже
Ваше мнение очень важно для нас.

Страница 310 из 785