##作ろうとしているもの
しりとりをするプログラム。
ウィンドウのテキストボックスに入力した文字の最後の文字から、条件分岐で使うリストを選び、
そのリストの中からランダムに言葉を選んで返すもの。
##困っていること
tkinterモジュールでウィンドウを作り、ウィンドウのテキストボックスで入力した文字を、
【entry = tkinter.Entry()】で定義し、
ウィンドウやテキストボックスのソースコードが書いてあるファイル(main.py)とは
別のファイル(sistem.py)の関数内で【entry.get()】と書いて、
入力した文字を取り出し、処理をしようと思ったのですが、
NameError: name 'entry' is not defined
と出てしまいました。
どうして entry が定義されていないことになっているのでしょうか。
また、これはどうやれば別のファイルでentryを使うことができるのでしょうか。
##やってみたこと
【entry.get()】を書いた別ファイルに
ウィンドウやテキストボックスのソースコードを書いてあるファイルをインポートしてみましたが、
やはり NameError: name 'entry' is not defined と出てしまいました。
【entry.get()】を別ファイルの関数の定義のメソッド内に書いているので、
グローバル変数やらローカル変数やらの問題が起きているのかと思いましたが、
特に関数内でentryを定義しなおしてはいませんでした。
##ウィンドウやテキストボックスのソースコードの書いてあるファイル(main.py)
python
1import tkinter 2import system 3 4root = tkinter.Tk() 5 6entry = tkinter.Entry(width = 39, bd = 4) 7entry.place(x = 300, y = 380) 8system.answer() 9partner_ans = tkinter.Label(text = ans_word)
##別ファイル(system.py)
python
1def answer() : 2 import main 3 import wordlist 4 my_ans = entry.get() 5 last = my_ans[-1]
wordlistは、しりとりで返す言葉のリストの書いてあるファイルです。
この関数定義にはこの後条件分岐が書いてありますが、長ったらしいのと、
おそらくエラーには関係ないのでここには書いていません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/02 06:57