索引到dict时,Python NoneType不可调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了索引到dict时,Python NoneType不可调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含955字,纯文字阅读大概需要2分钟。
内容图文
![索引到dict时,Python NoneType不可调用](/upload/InfoBanner/zyjiaocheng/791/495689bcbff5479791c79dd9c90cc325.jpg)
我遇到了这个我无法解释的奇怪错误.
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import UserDict
>>> a = UserDict.UserDict()
>>> b = {}
>>> b[a]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable
我明白这应该是一个错误.我不明白为什么它说’NoneType’对象不可调用.据我所知,我没有在导致错误的行中调用任何内容.
我预计错误会更像这样:
>>> b[b]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
在我疯了之前,有人可以向我解释一下吗?
解决方法:
看看@Wooble建议的UserDict实现,我看到了这个:
__hash__ = None # Avoid Py3k warning
因此问题是因为UserDict的实现.
如果你真的需要使用你自己的字典类型,我建议直接从dict子类化并实现你自己的__hash__方法,或者,在例如freezeset的帮助下将字典转换为可哈希的对象:
>>> a = UserDict.UserDict()
>>> b[frozenset(a.items())]
内容总结
以上是互联网集市为您收集整理的索引到dict时,Python NoneType不可调用全部内容,希望文章能够帮你解决索引到dict时,Python NoneType不可调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。