
Andrey
20.11.2018
15:31:24

Tishka17
20.11.2018
15:31:30

Виктор
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

Andrey
20.11.2018
15:35:46

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

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
желательно

Slam! 538
20.11.2018
16:06:49

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

Alex
20.11.2018
16:07:36

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

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

Slam! 538
20.11.2018
16:11:14

Mihail
20.11.2018
16:11:28

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
Хммм логично, просто недавно с плюсов перешел на пайтон, а там так нужнобыло делать, спасибо)

Tigran
20.11.2018
16:16:44

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:22:59

Tigran
20.11.2018
16:23:52

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

Tigran
20.11.2018
16:26:01

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

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

Tigran
20.11.2018
16:27:43

Tishka17
20.11.2018
16:27:47

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

Dmitri
20.11.2018
16:28:09

Kallibr44
20.11.2018
16:28:09

Dmitri
20.11.2018
16:28:24

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

Kallibr44
20.11.2018
16:28:29
ну
так в чем проблема?

Tigran
20.11.2018
16:28:38

Dmitri
20.11.2018
16:28:52

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

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

Dmitri
20.11.2018
16:31:12