@spbpython

Страница 338 из 785
Aleksandr
23.03.2017
17:30:01
foo = ( 'part one' "part two" """part three""" )

Sergey
23.03.2017
17:30:02
F strings добавить

Danil
23.03.2017
17:30:08
максимум три )

Sergey
23.03.2017
17:30:10
Google
Serge
23.03.2017
17:30:20
Sergey
23.03.2017
17:30:30
максимум три )
Тройные разные же могут быть

Serge
23.03.2017
17:30:34
Предлагаю чередовать
Тогда через две

GNU/Docker
23.03.2017
17:31:04
надо вобщем знать количество строк

Sergey
23.03.2017
17:31:10
PEP-пропозал уже начали писать?

Sergey
23.03.2017
17:31:38
Каждую пятую таки можно из файла читать

Sergey
23.03.2017
17:31:58
Этот файл может быть отдельным модулем только с этим числом. И уже в питоне, и не мешает

Это единственное нормальное решение, бро

Danil
23.03.2017
17:32:25
Тройные разные же могут быть
осознал что никогда не использовал ''' a '''

Sergey
23.03.2017
17:33:15
Бэктикнутые строки существуют? Во втором?

GNU/Docker
23.03.2017
17:33:25
Каждую пятую таки можно из файла читать
и можно одну из микросервиса брать

Sergey
23.03.2017
17:41:06
Почему нельзя в файл ...
можно, я решил положить в json

Google
Dmitry
23.03.2017
17:52:43
f-стринги кстати классные

на днях впервые попробовал

Serge
23.03.2017
17:55:56
Sergey
23.03.2017
17:56:09
на днях впервые попробовал
Теперь все в них будешь заворачивать?)

Dmitry
23.03.2017
17:56:32
к сожалению нет

мало где нужный питон

GNU/Docker
23.03.2017
17:57:22
ямла нет в стандартной поставке.

Sergey
23.03.2017
17:57:23
Ну на фронте `` как раз можно. Я не помню, там как в питоне можно что угодно выполнять?

GNU/Docker
23.03.2017
17:57:30
Зачем тогда в ямл.

Sergey
23.03.2017
18:02:07
Если про json/yaml вспомнили, то еще раз поделюсь http://jsonnet.org. Отличная штука для генерации json/yaml конфигов. Сейчас у меня через нее конфиг тераформа генерится, думаю ансибл тоже переделать

Они предлагают по сути все конфиги таким образом генерить

Вот тут пример http://jsonnet.org/case_studies/casestudy_fractal.1.html Там nginx, flask, Cassandra, uWSGI, terraform, packer

Serge
23.03.2017
18:14:11
Зачем тогда в ямл.
Чтобы больше ада. Можно же было в питоновский файлик сразу константу положить

GNU/Docker
23.03.2017
18:14:41
тогда в редис надо положить.

Serge
23.03.2017
18:15:01
тогда в редис надо положить.
Так надо же в файлик, чтобы в репу

GNU/Docker
23.03.2017
18:15:29
дампать редис в репу

Sergey
23.03.2017
18:15:55
Боже упаси
От чего?)

Serge
23.03.2017
18:17:27
От чего?)
От json в любой форме, а тем более от костылей с темплейтами для него

В yaml есть и схемы, и теги, и переиспользование структур

Google
Serge
23.03.2017
18:18:35
А ещё ведь есть toml...

GNU/Docker
23.03.2017
18:19:04
Томл клевый

А есть однозначный стандарт ямла?

Serge
23.03.2017
18:19:21
В yaml есть и схемы, и теги, и переиспользование структур
И его может человек с нормальной психикой руками написать

Sergey
23.03.2017
18:19:40
А вот к ямлу в привычном виде у меня не получается спокойно относится. Только в виде того же json

Адский синтаксис который я не в состоянии читать

Serge
23.03.2017
18:20:31
А есть однозначный стандарт ямла?
Эээ... Этот плохой? http://yaml.org/spec/

Sergey
23.03.2017
18:23:11
Там есть всё это и больше
И читается намного приятнее

GNU/Docker
23.03.2017
18:23:12
Я не в курсе насчет ямла.

А то что у жсона все имплементации по разному парсят - в курсе

Serge
23.03.2017
18:27:56
Кстати, json из 2.7 иногда добавляет лишний пробел после запятой перед переводом строки. Мелочь, а тесты хачить пришлось в pyventory

Eugene
23.03.2017
19:12:26
Если про json/yaml вспомнили, то еще раз поделюсь http://jsonnet.org. Отличная штука для генерации json/yaml конфигов. Сейчас у меня через нее конфиг тераформа генерится, думаю ансибл тоже переделать
Судя по http://jsonnet.org/language/design.html это ещё один язык. Зачем если уже есть Python? // util.jsonnet local internal = { square(x):: x*x, }; { euclidianDistance(x1, y1, x2, y2):: std.sqrt(internal.square(x2-x1) + internal.square(y2-y1)), } Ну и зачем мне это знать и помнить?

Eugene
23.03.2017
19:17:39
Просто это будет ещё один язык на проекте, который надо будет поддерживать.

GNU/Docker
23.03.2017
19:20:01
Кто-нибудь скинтье xkcd на этот счет

Sergey
23.03.2017
21:47:13
Кто-нибудь скинтье xkcd на этот счет
Похоже. Только в этом случае оно на самом деле может работать)

Google
GNU/Docker
23.03.2017
21:55:46
https://xkcd.com/927/

Похоже. Только в этом случае оно на самом деле может работать)
Все так говорят, а получается ещё одно говно на поддержку.

Serge
23.03.2017
22:03:06
не, серьезно, jsonnet - какой-то кал, простите

Sergey
23.03.2017
22:04:54
не, серьезно, jsonnet - какой-то кал, простите
обоснованное заявление! переубеждать не буду. Мне удобно. Вдруг кому еще пригодится

Serge
23.03.2017
22:05:34
можно php с таким же успехом взять и им json темплейтить

вообще, я чувствую, что этим ребятам демон xslt на ухо нашептывал

Sergey
23.03.2017
22:06:47
может я не видел настоящих темплейтов, но оно по-моему немного о другом

Admin
ERROR: S client not available

Serge
23.03.2017
22:07:24
ну, наверное, в том же айфри фреймворки на xslt херачили

Mehti
24.03.2017
08:40:29
Создавать новый метод внутри статического метода класса нормальная практика? Я помню что видел такое где-то в опен соурсе, но не могу припомнить это был проект нормальной компании или быдло-организации)

Mehti
24.03.2017
08:48:35
class Foo(object): @staticmethod def bar(a=None): def baz(b=None): return b return baz(a)

примерно так

А при чем тут организация, в которой автор работает?
мне казалось что код организация публикует после code review и по этому коду можно понять чего стоит такая компания

b0g3r
24.03.2017
08:52:53
C отступами в примере что-то не так

Mehti
24.03.2017
08:54:12
да, я поправил) писал прямо тут

Andrey
24.03.2017
08:55:17
Там return b внутри baz наверное было?

Mehti
24.03.2017
08:55:53
да)

это мелочи, мне главное понять нормально ли так писать я очень мало где такое видел

Google
Andrey
24.03.2017
08:57:06
Ну и вообще это не создание нового метода, а просто вспомогательная функция. Ты же ее в класс не добавляешь

Mehti
24.03.2017
08:58:10
да в том тои дело! мне нужно ее использовать только внутри метода в котором он создан

Olya
24.03.2017
08:58:21
Если код от этого лучше читается - почему нет. Мне кажется, нормально все

Serge
24.03.2017
09:04:05
class Foo(object): @staticmethod def bar(a=None): def baz(b=None): return b return baz(a)
Это не метод, а замыкание. Чаще всего так инкапсулируют декораторы, когда это по смыслу можно к классу прицепить, например.

Serge
24.03.2017
09:06:00
да в том тои дело! мне нужно ее использовать только внутри метода в котором он создан
Это пока тебе нужно использовать её только там, но всякое может произойти. Кто мешает рядом сделать метод того же класса на подчеркивание начинающийся? Почему это не метод класса, инстансом которого является b?

Use OOP, Luke.

Serge
24.03.2017
09:09:07
Это будет не приватный
Приватный ты из статического метода не вызовешь нормально

Mehti
24.03.2017
09:11:30
Приватный ты из статического метода не вызовешь нормально
Мне его не нужно вызывать. И не думаю что понадобится. Это все в модели бд

Serge
24.03.2017
09:12:55
Мне его не нужно вызывать. И не думаю что понадобится. Это все в модели бд
Если метод b сделать приватным и повесить рядом со статическим, то ты не сможешь нормально вызвать b из a.

Потому что a - статический и не видит инстанса изнутри.

И есть ещё нюанс. Я бы не хотел чтобы мне пришлось тесты на такой код писать

Mehti
24.03.2017
09:16:54
И есть ещё нюанс. Я бы не хотел чтобы мне пришлось тесты на такой код писать
? Поэтому я и спросил. Предпочитаю быть 5 минут глупым чем все оставшееся время. Все же лучше реализовать все в одном методе.

Andrey
24.03.2017
09:25:11
Это не метод, а замыкание. Чаще всего так инкапсулируют декораторы, когда это по смыслу можно к классу прицепить, например.
Ты как-то странно определил замыкание. Замыкание это множество объектов из внешнего скоупа, которые используются внутри функции, и значения которых фиксируются в момент задания функции. Оно может быть у вообще любой функции, метода и так далее. А в этом примере у baz замыкание вообще пустое, используются только параметры

Александр
24.03.2017
09:26:23
class Foo(object): @staticmethod def bar(a=None): def baz(b=None): return b return baz(a)
Это не очень хороший пример, ибо все еще непонятно зачем он там внутри

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