Email or username:

Password:

Forgot your password?
Сапортер/ПМ 🇷🇺

ляяя, чет не могу в ООП((( сложна. Я в отчаянии((( Феди помоги!

Как выйти из функции класса? Есть простенькой код, который должен заслать месседж в irc канал, и завершиться.

Он закрывает соединение, но сам скрит не завершается. Ну это только прототип, он потом будет вызывается из другого модуля и использовать sys.exit думаю не правильно ибо это приведет к остановке всего(( А надо чтобы отправил, вышел и пошел выполнять другое дальше.

import irc.client
import sys

class MyIRCClient(irc.client.SimpleIRCClient):
def __init__(self, message):
irc.client.SimpleIRCClient.__init__(self)
self.message = message

def on_welcome(self, connection, event):
connection.join("#test")
connection.privmsg("#test", self.message)
connection.quit()
print('message send')

client = MyIRCClient("заебало играть в классы!")
client.connect("192.168.122.51", 6667, "Bot")
client.start()

#эта хрень ниже не выполняется(((
print('Check status after exit')

@rf

7 comments
[DATA EXPUNGED]
DELETED

@supportfireman ооп не нужно, не благодари. старт блокирует тред небось и по классике на инфинит лупе висит вайл тру. открой имплементацию старта.

Сапортер/ПМ 🇷🇺

@x это как? А тот вот сейчас сматерился) я не понэл(

DELETED

@supportfireman ну программа обычно подразумевает что у нее есть какая-то точка входа и где-то оно заканчивается выходит. Если бы у тебя не было того старта то просто бы прошлось по тем вызовам и завершилось бы, но очевидно оно не завершается. Не завершается потому что кто-то процессу не дает этого делать. Тут не сложно догадаться что не дает этого делать старт, а внутри там по классике как у людей тупой вайл тру висит, это ж с еще сей дефолт вариант ну или даже раньше, его и в другие языки утащили. Планировщик когда возвращает управление заходит в тот луп делает что там в лупе (пока что особо ничего кроме старта и листена), и прыгает на тот вайлтру сколько-то тактов, потом прерывается, планировщик передает управление куда-то еще, потом обратно возвращается туда же и оно опять колбасит бесконечно в этом вайл тру. Соответственно из этого лупа оно не выходит условно никогда, поэтому до следующей строчки не дойдет. Или в чем вопрос то был?

start:

while (true) {
listen() // обработчики всякие
}

....
print(check) </ сюда из white true т.е. из старта никогда не выйдет. А зачем тебе чтобы оно сюда попало вообще?

@supportfireman ну программа обычно подразумевает что у нее есть какая-то точка входа и где-то оно заканчивается выходит. Если бы у тебя не было того старта то просто бы прошлось по тем вызовам и завершилось бы, но очевидно оно не завершается. Не завершается потому что кто-то процессу не дает этого делать. Тут не сложно догадаться что не дает этого делать старт, а внутри там по классике как у людей тупой вайл тру висит, это ж с еще сей дефолт вариант ну или даже раньше, его и в другие языки утащили....

razzlom but silly

@supportfireman@lor.sh @rf@mastodon.ml Если есть client.start(), должно быть и client.exit() (или что-нибудь похожее).

Go Up