
Nikolay
06.03.2017
20:44:42
Элементарного не знают

Tony
06.03.2017
20:46:29
как у тебя так выделяеттся await?
name await is not defined

Maksym
06.03.2017
20:48:51
сорян

Google

Ramil
06.03.2017
20:52:29
Всем привет! Есть ли в Python возможность делать что-то типа cleanup-функции для метода класса?
Например, есть метод класса, и в нем есть много return-ов в разных местах. Однако я хочу, чтобы перед каждым return-ом выполнилась функция, которая бы что-то делала, например, некоторым полям класса обратно присвоила бы 0 и выводила строчку вроде "Работа выполнена". Как это можно сделать по-хорошему?

Nikolay
06.03.2017
20:53:35

Ramil
06.03.2017
21:12:55

Stanislav
06.03.2017
21:16:44

Tony
06.03.2017
21:18:18
@asyncio.coroutine
async def interval():
print('sec')
await asyncio.sleep(1)
if __name__ == '__main__':
interval()
RuntimeWarning: coroutine 'interval' was never awaited
interval()
в гугле не нашел

Nikolay
06.03.2017
21:19:29
а класс должен наследоваться от object

Nikolay
06.03.2017
21:19:57
Это в какой-то параллельной вселенной

Nikolay
06.03.2017
21:20:19
loop = asyncio.get_event_loop()
loop.run_until_complete(interval())

Tony
06.03.2017
21:21:10

Google

Tony
06.03.2017
21:21:13
как все просто
спасибо большое

Nikolay
06.03.2017
21:21:41

Tony
06.03.2017
21:21:46

Nikolay
06.03.2017
21:21:48
вот дальше от этого кода и пляши

Tony
06.03.2017
21:21:57
причем видел этот ответ на стаковерфлоу
сдуру пропустил

Stanislav
06.03.2017
21:22:17

Nikolay
06.03.2017
21:23:10

Stanislav
06.03.2017
21:23:27

Nikolay
06.03.2017
21:23:36

Stanislav
06.03.2017
21:23:44

Nikolay
06.03.2017
21:24:03
Возможно
с некоторой степенью вероятности

Stanislav
06.03.2017
21:24:27

Ramil
06.03.2017
21:28:49

Nikolay
06.03.2017
21:29:15
декоратор не должен иметь ни к чему доступа
декоратор - это просто функция, которая принимает функцию и возвращает функцию

Stanislav
06.03.2017
21:29:33

Nikolay
06.03.2017
21:30:09

Google

Max
06.03.2017
21:32:54
Кто-то маялся шифровкой данных на Python и последующей загрузкой в БД? Просто не совсем ясна процедура поиска по ним и оптимальный алгоритм (а может и готовый метод).

b0g3r
06.03.2017
21:33:46

Max
06.03.2017
21:34:26
Ну шифрование данных, по типу DES, только из нашего столетия.

Stanislav
06.03.2017
21:35:32

Max
06.03.2017
21:36:19
Это наводящий вопрос, понятно что я не ради галочки сюда написал.

Ramil
06.03.2017
21:36:47
декоратор не должен иметь ни к чему доступа
Ага, понял. А с точки зрения code style и дизайна в целом это нормально, что декоратор, написанный для какого-то метода класса пишется вне класса? Нельзя ли его как-то в класс запихнуть, все-таки?

Nikolay
06.03.2017
21:37:19

Stanislav
06.03.2017
21:37:32

Nikolay
06.03.2017
21:37:36
и писать @ClassName.decorator_name

Ramil
06.03.2017
21:39:46

Nikolay
06.03.2017
21:40:23

Stanislav
06.03.2017
21:40:29

Nikolay
06.03.2017
21:40:49
либо, есть вариант, написать родительский класс и описать его в нем, а остальные от него наследовать

Stanislav
06.03.2017
21:41:48

Nikolay
06.03.2017
21:42:00

Stanislav
06.03.2017
21:42:38
Задавайте свои вопросы! Всегда готов помочь

I
06.03.2017
21:43:03
сколько будет 2+2?

Stanislav
06.03.2017
21:43:25

Ramil
06.03.2017
21:49:22
если ты точно не уверен, понадобится ли он тебе где-то еще, то лучше пиши вне
Уверен, что больше нигде не понадобиться больше. Но вот со staticmethod пока не получается. Пишу
class C(object):
def __init__(self, number):
self.count = 45
self.number = number
@staticmethod
def cleanup(func):
def wrapped(self):
result = func(self)
self.count = 0
print 'Finished:', self.count
return result
return wrapped
@C.cleanup
def foo(self):
if self.number % 2 == 0:
self.count += 1
return 1
else:
self.count -= 1
return -1
Но в данном случае выдается ошибка AttributeError: type object 'C' has no attribute 'cleanup'. Что я делаю не так?

Google

Stanislav
06.03.2017
21:50:24
Да, ты делаешь что-то не так
Что-то

b0g3r
06.03.2017
21:52:35
Есть подозрение что не хватает скобок после cleanup

Nikolay
06.03.2017
21:52:43

Stanislav
06.03.2017
21:52:57
Есть подозрение

Admin
ERROR: S client not available

Nikolay
06.03.2017
21:53:31
оно сработает, если вместо @C.cleanup написать @cleanup.__func__
но это как-то уж больно грязно
в общем, вынеси лучше его из класса и дело с концом

b0g3r
06.03.2017
21:54:39
Он хочет счетчик экземпляра класса обнулять в нем

Stanislav
06.03.2017
21:55:02
Да

Nikolay
06.03.2017
21:56:59
ну вообще тогда лучше так не делать

Ramil
06.03.2017
21:59:17

Stanislav
06.03.2017
21:59:35

Nikolay
06.03.2017
22:02:43

Stanislav
06.03.2017
22:03:13
Да

Nikolay
06.03.2017
22:03:20
ты либо делаешь общий декоратор, который не имеет отношения к конкретному классу, либо пишешь код в таком виде, что всегда дергается коллбэк
Да
ты запарил немного :) заканчивай

Stanislav
06.03.2017
22:03:45

Google

Stanislav
06.03.2017
22:04:03
Надо же начинать?
Вдруг президентом стану

Nikolay
06.03.2017
22:04:21

Ramil
06.03.2017
22:07:04

Stanislav
06.03.2017
22:08:33
А я спать

53r63rn4r
06.03.2017
22:08:53
@
Завтра в школу

Stanislav
06.03.2017
22:09:17

53r63rn4r
06.03.2017
22:09:27
В бурсу чтоли поступил уже?
Поздравляю

Stanislav
06.03.2017
22:11:56

Ramil
07.03.2017
00:35:14

Artem
07.03.2017
00:56:15
узнал, что fabric (точнее paramiko) не поддерживает ключи ed25519. issue висит почти три года, лол


Pavel
07.03.2017
03:39:47
А есть ли провайдер карт (гугл, яндекс, осм, кто там ещё бывает), у которого есть внятный АПИ для серверсайда?
(Yandex|Google) Static Maps - почти идеал, но из-за пары ньюансов не очень подходит.
мне надо в телеграм боте поверх карты рисовать какие-то маркеры. яндекс-гугл карты предлагают динамический див, с которым сами работают через жс. достаточно геморойной для серверсайда.
А если статические яндекс\гугл карты (я им координаты нужного мне квадрата, они мне картинку), то там тоже беда. Они присылают карту чуть больше, чем мне надо. То есть, нужный мне квадрат влезает, но из-за дискретного масштаба поплучается чуть больше. И нужно как-то угадывать, координаты какого куска они мне прислали. А маркеры, которые они умеют ставить, не совсем подходят по возможностям, нужно самому рисовать.


Ilia
07.03.2017
03:54:39
мне надо в телеграм боте поверх карты рисовать какие-то маркеры. яндекс-гугл карты предлагают динамический див, с которым сами работают через жс. достаточно геморойной для серверсайда.
А если статические яндекс\гугл карты (я им координаты нужного мне квадрата, они мне картинку), то там тоже беда. Они присылают карту чуть больше, чем мне надо. То есть, нужный мне квадрат влезает, но из-за дискретного масштаба поплучается чуть больше. И нужно как-то угадывать, координаты какого куска они мне прислали. А маркеры, которые они умеют ставить, не совсем подходят по возможностям, нужно самому рисовать.
Вместе с куском карты актуальные координаты не приходят разве?

Pavel
07.03.2017
03:55:51
нет, а как? там PNG на выходе, в заголовках тоже ничего нет.