0
私は「黒い帽子パイソン」本に沿って、次のされていると私は、この特定のコードに入力されたとき、私はエラーを得たが、「グローバル名server_loop()が定義されていません」「グローバルな名前server_loop()が定義されていません」 。ここでステートメントがエラーを持つmain()関数の前にある:Pythonのエラー:
if listen:
server_loop()
、ここでは、メイン()関数とserver_loop()関数です:
def server_loop():
global target
# if no target is defined, we listen on all interfaces
if (not len(target)):
target = "0.0.0.0"
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((target, port))
server.listen(5)
while True:
client_socket, addr = server.accept()
# spin off a thread to handle our new client
client_thread = threading.Thread(target=client_handler, args=(client_socket,))
client_thread.start()
おかげ
あなたの字下げは、server_loopでは間違っています。 defの下のすべてがインデントされる必要があります。また、どこにもターゲットを定義しません。あなたの 'global target'ステートメントは単にグローバルを使うと言っていますが、コード内には1つも表示されていないことがわかります –
あなたは正しいですが、インデントは問題ではないと思います。 –
@ Jean-FrançoisFabreの回答では、本書のコードが想定していたとおりに機能しなかったことを意味します。多分本に誤りがあったでしょうか? –