@ru_python

Страница 7106 из 9768
Tishka17
20.11.2018
15:31:30
Ну да, а какие с этим проблемы? Наоборот, будет удобно с ней работать. Что-то вроде s = MyStruct.from_bytes(data) print(s.my_int_val_1) Что-то такое хочу
ну вроде как нарушение абстракций. У тебя работа с данными начинает зависеть от того, откуда они пришли

Виктор
20.11.2018
15:31:35
Для того, чтобы переконвертировать стиль имено переменной из under_score в camelCase, я воспользовался регулярным выражением:

Slam! 538
20.11.2018
15:31:39
Народ, гляньте @roadtotheprogrammer Бывает, не совсем правильную информацию подает

Google
Виктор
20.11.2018
15:31:51
underScorePattern=r'_([a-z0-9])'

print(re.sub(underScorePattern, r'\1'.upper(), 'some_name'))

Но метод .upper() в данном случае не работает, т.к. в строку подставляется значение только после того, как она передаётся функции, а не перед этим. На выходе должно быть "someName"

Tigran
20.11.2018
15:34:44
Tishka17
20.11.2018
15:36:01
да можешь тупо аннотации класса запросить

сам дата класс не нужен

Andrey
20.11.2018
15:36:15
да можешь тупо аннотации класса запросить
Никогда не сталкивался. Как это работает?

Tishka17
20.11.2018
15:37:02
ну когда делаешь аннотации типов вроде x: int

они доступны в классе через __annotations__

Andrey
20.11.2018
15:38:37
они доступны в классе через __annotations__
Оо, спасибо огромное. То, что нужно

Sharifkhon
20.11.2018
15:47:33
Привет всем

Slam! 538
20.11.2018
15:50:55
Google
Sharifkhon
20.11.2018
15:52:42
Ок

Slam! 538
20.11.2018
15:58:20


Tima
20.11.2018
16:02:21
Доброго времени суток, у меня вопрос: по пайтоновски ли обьявлять метод перед конструктором? Спасибо)

Tigran
20.11.2018
16:02:28
Чуваку лет 13

Kallibr44
20.11.2018
16:03:18
Ребзи

Как можно реализовать UDP коннект между двумя устройствами которые оба за NAT?

Есть возможность передать данные обоих юзеров друг другу через внешний сервер

Виктор
20.11.2018
16:05:58
Kallibr44
20.11.2018
16:06:09
желательно

Kallibr44
20.11.2018
16:07:04
сами компы успешно создают двухстороннюю связь пк-сервер

Alex
20.11.2018
16:07:36
Доброго времени суток, у меня вопрос: по пайтоновски ли обьявлять метод перед конструктором? Спасибо)
я гайдлайнов на этот счет не встречал. предпочитаю dunder методы определять до остальных.

Tima
20.11.2018
16:10:21
Понял, я просто хотел сделать объявить метод который проверяет валидность аргументов и думал будет красиво если определить его перед конструкторм или может есть получше способ проверить аргументы на тип?

Kallibr44
20.11.2018
16:10:26
Сразу скажу: miniupnpc не компилится на windows, поэтому мне надо как-то в обход

Tima
20.11.2018
16:11:35
Будет немного не красиво ибо много кода

Slam! 538
20.11.2018
16:12:13
Tima
20.11.2018
16:12:52
Ок

Slam! 538
20.11.2018
16:13:55
А подожди, кто мешает написать метод валидации после конструктора?

Google
Slam! 538
20.11.2018
16:14:15
И вызывать его при создании объекта

Tima
20.11.2018
16:15:22
Хммм логично, просто недавно с плюсов перешел на пайтон, а там так нужнобыло делать, спасибо)

Tima
20.11.2018
16:17:58
Ну если я хочу чтобы мне пришел инт, а мне прийдет например строка то я кину исключение

Tigran
20.11.2018
16:18:33
в питоне принято кидать исключение, когда duck typing сломается

Tima
20.11.2018
16:18:43
Что это?

Slam! 538
20.11.2018
16:18:52
Если к классу обращаются часто, то есть смысл в нем валидацию делать, иначе можно до вызова проверить

Tigran
20.11.2018
16:18:57
типа, когда ты попытаешься вызвать .replace() или когда попытаешься сконкатенировать аргумент с другим

короч, без особой необходимости на типы принято забивать

hachiman
20.11.2018
16:19:46
Tima
20.11.2018
16:20:01
Я же говорю в моей задаче надо делать проверку, спасибо

Dmitri
20.11.2018
16:21:50
народ, такой вопрос использую pymysql запрос форматируется посредством % т.е. типичный запрос выглядит примерно так cur.execute('select * from table_name where column1_name = "%s" and column2_name = "%s"' % (param_1, param_2)) в чем собственно вопрос каким образом, допустим, при отсутствии параметра 2(он опциональный), избежать его в параметрах для форматирования, кроме как посредством if?

Slam! 538
20.11.2018
16:24:29
column1_name, column2_name = (...)

Tigran
20.11.2018
16:24:33
вот же прям в доках пример sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" cursor.execute(sql, ('webmaster@python.org', 'very-secret'))

Dmitri
20.11.2018
16:25:51
Tishka17
20.11.2018
16:26:21
Что?

Execute_many?

Google
Dmitri
20.11.2018
16:26:34
что?
ты вопрос мой прочел? мне не нужен был совет, как форматировать или execute-тить запрос

Tigran
20.11.2018
16:26:54
касательно твоего вопроса — магии не существует и тебе нужен if

Dmitri
20.11.2018
16:26:56
спасибо конечно, но вопрос не в этом

блэт -_-

а если параметров 10 и все они опциональны?

Slam! 538
20.11.2018
16:27:24
ты вопрос мой прочел? мне не нужен был совет, как форматировать или execute-тить запрос
? сама конструкция не сработает, т.к. будет смотреть на значение второй колонки...которого нет

Dmitri
20.11.2018
16:27:26
представляешь себе ленту эту?)

Tigran
20.11.2018
16:27:43
представляешь себе ленту эту?)
ну наверни абстракций сверху

Tishka17
20.11.2018
16:27:47
а если параметров 10 и все они опциональны?
Возьми какой-нибудь queru builder готовый

Tigran
20.11.2018
16:27:49
ты можешь генерировать код запроса на лету

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

Dmitri
20.11.2018
16:28:09
ты можешь генерировать код запроса на лету
код я и генерирую так, а вот тупо с аргументами..

Slam! 538
20.11.2018
16:28:29
Если опционально, значит пиши на те места дефолтные значения, которые будут пихаться в запрос при отсутствия параметров. Без if не обойтись. Можно функцию написать, которая будет принимать аргументы

Kallibr44
20.11.2018
16:28:29
ну

так в чем проблема?

Tigran
20.11.2018
16:28:38
код я и генерирую так, а вот тупо с аргументами..
ну типа, если нужно фильтрануть по этому полю, то + " AND blah = %s"

Google
Slam! 538
20.11.2018
16:29:09
Tigran
20.11.2018
16:29:10
почему беда?

Tishka17
20.11.2018
16:29:14
Вообще, можно безопасно подставить названия колонок через % и плейсхолдеоы, ты же знаешь какие они. А дальше execute

Dmitri
20.11.2018
16:29:14
Tigran
20.11.2018
16:29:18
собирай аргументы в лист и потом конвертируй его в тупл

Dmitri
20.11.2018
16:29:33
собирай аргументы в лист и потом конвертируй его в тупл
бля, заработался совсем не продумал этот варик

Tishka17
20.11.2018
16:29:40
Kallibr44
20.11.2018
16:29:45
ну типа, если нужно фильтрануть по этому полю, то + " AND blah = %s"
ты пойми что даже если ты будешь пытаться в одну команду сделать, то ты не сможешь сам запрос редактировать

Tigran
20.11.2018
16:29:49
А что, лист не работает?
да скорее всего, работает))

Dmitri
20.11.2018
16:29:57
А что, лист не работает?
онли туплы принимает, уже испытал -_-

Tishka17
20.11.2018
16:30:32
А что на лист говорит?

Tigran
20.11.2018
16:31:11
да, так и делаю, собственно, но вот с туплом беда в этом плане
ну и в чём беда с туплом, всё равно не понимаю >>> a = (1,2) >>> a += (3,) >>> a (1, 2, 3)

Dmitri
20.11.2018
16:31:12
А что на лист говорит?
нот инаф аргументс фор стринг форматинг

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