【问题标题】:"TypeError: 'tuple' object is not callable"“TypeError:‘元组’对象不可调用”
【发布时间】:2020-09-09 23:31:07
【问题描述】:

所以我正在尝试制作一个 Growtopia 服务器模拟器,但实际上我得到了这个令人困惑的错误。我找不到任何关于...的信息

这是我的代码

import cgi #not used yet
import http.server
import logging #not used yet
import socketserver

class ServerHandler(http.server.BaseHTTPRequestHandler):
         def do_POST(self):
             self.send_response(200)
             self.end_headers()
             self.wfile.write("server|127.0.0.1\nport|17091\ntype|1\n#maint|Mainetrance message (Not used for now) -- Growtopia Noobs\n\nbeta_server|127.0.0.1\nbeta_port|17091\n\nbeta_type|1\nmeta|localhost\nRTENDMARKERBS1001")
         def do_GET(self):
             self.send_response(200)
             self.end_headers()
             self.wfile.write("server|127.0.0.1\nport|17091\ntype|1\n#maint|Mainetrance message (Not used for now) -- Growtopia Noobs\n\nbeta_server|127.0.0.1\nbeta_port|17091\n\nbeta_type|1\nmeta|localhost\nRTENDMARKERBS1001")
         def log_message(self, format, *args):
             return
PORT = 80
HOST = ""

Handler = http.server.SimpleHTTPRequestHandler,ServerHandler

OUT_HOST = HOST
httpd = socketserver.TCPServer((HOST, PORT), Handler)
print("Server Port : ", PORT)
if OUT_HOST == "" or " " or "\n":
 print("Server Hostname : ", "localhost")
else:
 print("Server Hostname : ", HOST)

httpd.serve_forever()


【问题讨论】:

  • trace 的确切含义是什么?另请注意,if OUT_HOST == "" or " " or "\n" 无法按预期工作。 This 问题解释了原因
  • Handler = http.server.SimpleHTTPRequestHandler,ServerHandler 看起来很可疑。最后的逗号使Handler 成为一个元组,而不是一个函数。你想在那里做什么?
  • @pythomatic 这似乎不太可能。需要将其视为导致该错误的函数,我不明白为什么需要调用 address 字段。此外,在 Python 库中使用 (HOST, PORT) 作为“地址”也很常见。
  • TCPServer 的第一个参数最终在内部传递给socket.bind,这意味着一个元组适合作为第一个参数。
  • socketserver.TCPServer 的第二个参数应该是一个类。你正在传递一个元组。我相信你只能将一个 Handler 传递给这个函数。我不太确定您通过传递两个处理程序的元组来实现什么。

标签: python enet


【解决方案1】:

我通过将Handler = http.server.SimpleHTTPRequestHandler 添加到 ServerHandler 类中解决了这个问题。

【讨论】:

    猜你喜欢
    • 2021-09-30
    • 2023-03-27
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 2017-11-17
    • 2015-03-11
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多