如何解决 Pythone3.6 中的 raise NotImplementedError

Posted

技术标签:

【中文标题】如何解决 Pythone3.6 中的 raise NotImplementedError【英文标题】:how can I solve raise NotImplementedError in Pythone3.6 【发布时间】:2017-04-04 06:21:00 【问题描述】:

我有一个名为 app.py 的文件。有一个名为 EchoWebSocket 的类。在EchoWebSocket下,我写了一个名为on_message的函数。我在这里得到一个类似 JSON 的数据,message = type: 'login', name: 'xyz' 从 javascript 前端。我声明了一个名为 data 的全局变量。现在我想解析消息并通过异常处理块将其存储在名为 data 的全局变量中。但我收到一个名为 ** raise NotImplementedError** 的错误。下面是我的python代码,我是这些技术的新手,请帮我解决这些问题。

/app.py

class EchoWebSocket(WebSocketHandler):

  clients = []

def open(self):
    logging.info('WebSocket opened from %s', self.request.remote_ip)
    EchoWebSocket.clients.append(self)

def on_message(self, message):
    #logging.info('got message from %s: %s', self.request.remote_ip, message)
    logging.info('message %s:', message)
    global data
    try:
      data = JSON.parse(message)
    except MyError as e:
      logging.info("Invalid JSON")
      data =   

/错误

[I 170404 11:35:30 web:1971] 304 GET / (127.0.0.1) 1.58ms
[I 170404 11:35:30 web:1971] 304 GET /static/js/client.js (127.0.0.1) 3.28ms
[E 170404 11:35:34 websocket:415] Uncaught exception in /ws
    Traceback (most recent call last):
      File "/usr/local/python3.6/lib/python3.6/site-packages/tornado/websocket.py", line 412, in _run_callback
        callback(*args, **kwargs)
      File "/usr/local/python3.6/lib/python3.6/site-packages/tornado/websocket.py", line 255, in on_message
        raise NotImplementedError
    NotImplementedError

【问题讨论】:

您的 try...except 块缩进了 2 个空格,这很可能导致 SyntaxError。 Python 代码总是缩进 4 个空格。 NotImplementedError 意味着包的某些部分功能未实现(未编写)。如果它是一个类的方法,你可以重新定义它,让它工作。 四个空格缩进纯粹是一个约定问题。使用两个没有语法问题,只是一个潜在的人类读者混淆问题。 两个空格或四个空格都可以,只要你保持一致,但有一个更大的问题:def opendef on_message 行根本没有缩进。如果在你的真实代码中就是这样(当你将它复制到堆栈溢出时不是一个错误),那么这就是问题所在。正如这里所写,当您需要将它们定义为 EchoWebSocketHandler 类中的方法时,您正在定义模块级函数 openon_message 【参考方案1】:

也许你在你的子类中实现了 on_close 方法

def on_close(self):
    print("WebSocket closed")

【讨论】:

以上是关于如何解决 Pythone3.6 中的 raise NotImplementedError的主要内容,如果未能解决你的问题,请参考以下文章

关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案

关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案

如何解决 django 错误:raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)

如何解决 raise ValueError("columns must have matching element counts") ValueError: columns mus

markdown 启动工作正在运行Raise网络接口(5分13秒)问题解决方法

如何使用 pytest.raises 有多个异常?