質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

2094閲覧

Python3キー入力でタイマースレッドを終了したい

poo3

総合スコア10

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/13 01:42

編集2019/01/13 02:00

**__~~**ここに言語を入力
Python3

コード ```### 前提・実現したいこと キー入力によるタイマースレッドの終了をさせたいです ここに質問の内容を詳しく書いてください。 python3を独学にて現在勉強しています。 クラスの勉強もかねて、タイマースレッドを使用し特定のキー(ESCキー)が押された場合に終了するプログラムを作成していたのですが、どこにどのように入れれば良いのか上手く動きません。(main.pyの中でtest.pyの実行中にESCキーが押されたら終わるような流れにしたいと思っています。) getchを使用してキーの判断をするところまでは分かったのですが、行き詰ってしまいました。 ご教授お願い致します。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ

エラーメッセージ

### 該当のソースコード ```ここに言語名を入力 ソースコード ****************************** (test.py) class Test(): def __init__(self): self.no = 0 def main_proc(self): print("hello") if __name__ == "__main__": pass **************************************************** (main.py) import timer import test def start(): print("Start") return test.Test() if __name__ == "__main__": tt = start() T1 = timer.Timer(3, tt.main_proc) T1.start() **************************************************** (timer.py) import threading import time class Timer(): def __init__(self, time, onTimer, params = None, count = -1): self.time = time self.onTimer = onTimer self.params = params self.count = count self.counter = 0 self.init() def init(self): self.state = "initializing" def pause(self): self.state = "paused" def run(self): if (self.state != "terminated"): self.state = "running" else: del self.thread self.init() self.start() def terminate(self): self.state = "terminated" def start(self): if (self.state == "initializing"): self.run() self.thread = threading.Thread(target = self.do, args = ()) self.thread.start() def do(self): while (self.state == "running"): time.sleep(self.time) if (self.state == "running"): if (self.params != None): self.onTimer(self.params) else: self.onTimer() self.counter += 1 if (self.count > 0 and self.counter >= self.count): self.counter = 0 self.state = "exit" self.terminate() if __name__ == "__main__": pass

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/01/13 01:49

質門は編集、書き直しができます
can110

2019/01/13 02:00

ソースコードにインデントがないため検証できません。 ソースコードはコードブロック```で囲んでください。
y_waiwai

2019/01/13 02:01

このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答1

0

コードが読めないため、回答不可です。

投稿2019/12/08 12:43

amahara_waya

総合スコア1029

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問