
Andrey
13.07.2019
19:32:40
Шедулер его блочит, как мне кажется

Tishka17
13.07.2019
19:33:12
Два разных процесса же
Попробуй не через Process.run, а просто из консоли два скрипта запустить

Google

Andrey
13.07.2019
19:35:18
Хммм, вот сейчас пробую и /start не запускается в Process.
Может у меня ошибка в коде какая-то?
if __name__ == "__main__":
bot.polling(none_stop=True)
Так все работает

Stuber
13.07.2019
19:37:19
"

Andrey
13.07.2019
19:38:12
У тебя лишняя
Исправил, тут все ок, работает, а с кодом выше какая-то проблема. И не пойму в чем:(

Alexey
13.07.2019
20:00:15

Andrey
13.07.2019
20:00:51
Че пишет?
Ошибок нет, но работает либо /start, либо отправка сообщений в определенное время
А зачем schedule? Чем он лучше sched?
Попробовал я и его. Теперь он отправляет смс раз в 10 секунд, а /start и не хочет запускать
s = sched.scheduler(time.time, time.sleep)
s.enter(10, 1, sendSomething)
s.run()
@bot.message_handler(commands=["start"])
def start(message):
bot.send_message(message.chat.id, "hi")
if __name__ == "__main__":
bot.polling(none_stop=True)

Tishka17
13.07.2019
20:16:12
Стоп
Ты только что другое показывал
Два скрипта отдельных я предлагал
S.run блокирует основной тред
Так же и bot.polling

Google

Fire
13.07.2019
20:38:20
По какому принципу работают собиратели программ из py в exe и подобные?

Artur
13.07.2019
20:39:17
ребзи,а можно присоединиться к какому-нибудь проекту?

Alex
13.07.2019
20:39:24

Artur
13.07.2019
20:39:50
да я бы здесь попробовал единомышленников найти

Alex
13.07.2019
20:40:07

Fire
13.07.2019
20:40:29

Shieldy
13.07.2019
20:45:10
Добро пожаловать, @sami0805!
Не забудь ознакомиться с правилами чата.
https://t.me/ru_python/802295

icYFTL
13.07.2019
20:48:20
Ребяяят
Помогите, позязя
Как юзать декораторы в классах?

Alex
13.07.2019
20:48:58

icYFTL
13.07.2019
20:50:59

Tishka17
13.07.2019
20:51:22

Alex
13.07.2019
20:52:04
нафига ты декоратор в класс засунул?

icYFTL
13.07.2019
20:52:21
А куда мне его пихать?

Tishka17
13.07.2019
20:52:43
Методы в классе создаются после выполнения всего определения класса. То есть в процессе его создания все функции ещё не стали методами

icYFTL
13.07.2019
20:53:08
Спасибо за теорию. То-есть - декораторы в классе делать не стоит?

Alex
13.07.2019
20:53:11

Google

Tishka17
13.07.2019
20:53:20

Alex
13.07.2019
20:53:24

icYFTL
13.07.2019
20:55:05
какой в этом смысл?
Ну допустим бывает мне нужен вывод в консоль, а бывает нет, но при этом логирование в файл постоянно. И в декораторе идет проверка на (нужен вывод/не нужен). И если вывод нужен, то через декоратор докидываем в консоль (то-есть зеркалим в консоль то, что идет в файл логироваться).
Вроде логично

Alex
13.07.2019
20:55:26
кстати у тебя декоратор в первом примере тоже реализован неправильно

icYFTL
13.07.2019
20:55:39

Tishka17
13.07.2019
20:55:42

Alex
13.07.2019
20:55:55

icYFTL
13.07.2019
20:56:09
return wrapper ?

Tishka17
13.07.2019
20:56:13

icYFTL
13.07.2019
20:56:19
есть такое

Tishka17
13.07.2019
20:56:27
Ты вместо возврата функции вернул результат выполнения

icYFTL
13.07.2019
20:56:46
Понял
То есть вывод из всего этого такой, что мне нужно декоратор отдельно, не в классе реализовать, да?

Tishka17
13.07.2019
20:58:07
Скорее всего да

Alex
13.07.2019
20:58:09

icYFTL
13.07.2019
20:58:15
Всё, тогда сяп ^^

Tishka17
13.07.2019
20:58:33
То есть я могу придумать как это обойти, но скорее всего это никому не нужно

icYFTL
13.07.2019
20:58:56
Ну если это красивая реализация, то я бы посмотрел

Tishka17
13.07.2019
21:03:50
class A:
def x(f):
def inner(self):
return 'oops'
return inner
@x
def y(self):
return "hello"
a=A()
print(a.y())

Google

Marod
13.07.2019
21:03:53

Tishka17
13.07.2019
21:03:55
Но так делать не стоит

icYFTL
13.07.2019
21:04:11
Кайф

Tishka17
13.07.2019
21:04:37
Или добавить del x в конце, чтобы не добавился в класс

icYFTL
13.07.2019
21:04:56
Ничево не слышу

Tishka17
13.07.2019
21:05:20
Посмотрели, подумали почему это так сработало и забыли

icYFTL
13.07.2019
21:05:31
Работает и ладно

Tishka17
13.07.2019
21:05:31
Не работает
То есть кое-что что сделало, но если копнуть дальше - не работает
Вынеси декоратор из класса

icYFTL
13.07.2019
21:07:04

Alex
13.07.2019
21:07:41

icYFTL
13.07.2019
21:08:21
Прекрасный способ, мне все нрав
А еще мне в C# нрав
bool a = True;
while (a.toString().Length() == 4){
...
a = false;
}

Tishka17
13.07.2019
21:09:38
Ты вообще знаешь почему это работает?
Это тут при чём?

Google

icYFTL
13.07.2019
21:10:13
Ниче, просто намекнул что люблю легаси и говно
Потому что ты во враппер закинул self

Tishka17
13.07.2019
21:15:32
Вот поэтому
Методы в классе создаются после выполнения всего определения класса. То есть в процессе его создания все функции ещё не стали методами
Пока класс не создался - это просто функции. Потом они становятся методами класса
Соответственно, пока идёт создание класса, они работают как обычные функции, а потом ожидается что первый параметр - self
Соответственно из-за этого - мой код - костыли и хрень

icYFTL
13.07.2019
21:17:06
В какой момент создается класс?
a = class() в этот?

Alex
13.07.2019
21:17:30

icYFTL
13.07.2019
21:17:30
Из головы вылетело слово дубликат

Alex
13.07.2019
21:18:52

icYFTL
13.07.2019
21:19:03
Лады

Alex
13.07.2019
21:19:28
т.е. например после
class Foo:
…