質問
同じクラス内で、メソッド内から関数にアクセスするにはどうすればよいでしょうか?
バックグラウンド
「こんにちは世界」私は現在、Tkinter を使用して GUI IM プログラムに取り組んでいます。ソケット経由でメッセージを送信するには、メソッドから関数にアクセスする必要があります。私のself.network
メソッドには、send_message()
アクセスしたいという関数があります。
コード
それにアクセスするために、私はこのコードを使用しようとしました:
def messageFun(self):
//Other widgets are here//
self.send = Button (self.messageFrame, text = "Send",
command = self.network(send_message()))
self.send.grid(row = 1, column = 1, sticky = S)
self.network
メソッドと関数は次のsend_message
とおりです。
def network(self):
def send_message():
#Send some data to the remote server
message = self.message.get("0.0",END)
try:
#set the whole string
s.sendall(message)
except socket.error:
#Send Failed
print "Send failed"
sys.exit()
コードをデバッグするための努力にもかかわらず、常に次のメッセージが表示されます。
Traceback (most recent call last):
File "D:\Python Programs\Sockets\First Project\IM Project\Server GUI InDev.py", line 178, in <module>
app = Application(root)
File "D:\Python Programs\Sockets\First Project\IM Project\Server GUI InDev.py", line 73, in __init__
self.messageFun()
File "D:\Python Programs\Sockets\First Project\IM Project\Server GUI InDev.py", line 156, in messageFun
command = self.network(send_message()))
NameError: global name 'send_message' is not defined