1
私は2つの機能を並べて実行しようとしています。2つの関数を同じクラスインスタンスへのアクセスで並べて実行しますか?
基本的には、(クラス内で)Falseに設定され、変数が実行されないようにするコードの一部を持っています。
ただし、再度Trueに設定して、所定の時刻に処理を実行することができます。だから私は変数が絶えず状態をチェックする方法が必要です。
私はそれを別の機能に入れて、それを私の主な機能と一緒に呼びます。私はそれらを一緒に置くならば、私はそれを発見した。 while Trueは、残りの関数を実行からブロックします。
class Alarm:
def __init__(self):
self.alarmpi = None
self.alarm_playing = False
self.alarm_time = '16:10'
self.alarm_enabled = True
def alarm_toggle(self, status):
self.alarm_enabled = status
return self.alarm_enabled
alarm.py
telegram_bot.py
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import logging
import os
from alarm import Alarm
import time
alarmpi = Alarm()
def alarmenable(bot, update):
if alarmpi.alarm_enabled:
update.message.reply_text("Alarm is already enabled")
else:
update.message.reply_text("Alarm has been enabled")
alarmpi.alarm_enabled = True
def alarmdisable(bot, update):
if alarmpi.alarm_enabled:
alarmpi.alarm_enabled = False
#alarmpi.alarm_enabled = False
update.message.reply_text("Alarm has been disabled")
else:
update.message.reply_text("Alarm is already disabled")
print('From sub :' + str(Alarm.alarm_enabled))
def main():
<code to start the bot and then go into 'idle mode'.. always listening for commamnds>
def timer():
while True:
if alarmpi.alarm_enabled:
print('We are live!')
else:
print('Hibernating'_
if __name__ == '__main__':
main()
timer()
私はスレッドとマルチプロセスモジュールと私のtelegram_botファイルの両方の機能を実行しようとしました。しかし、関数は同じクラスインスタンスを共有しません。