如何解决 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 open
和def on_message
行根本没有缩进。如果在你的真实代码中就是这样(当你将它复制到堆栈溢出时不是一个错误),那么这就是问题所在。正如这里所写,当您需要将它们定义为 EchoWebSocketHandler
类中的方法时,您正在定义模块级函数 open
和 on_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