gpt4 book ai didi

python - 搁置(python)真的很奇怪

转载 作者:太空狗 更新时间:2023-10-30 00:21:13 29 4
gpt4 key购买 nike

我创建了一个名为 foo_module.py 的文件,其中包含以下代码:

import shelve, whichdb, os

from foo_package.g import g

g.shelf = shelve.open("foo_path")
g.shelf.close()

print whichdb.whichdb("foo_path") # => dbhash
os.remove("foo_path")

在该文件旁边,我创建了一个名为 foo_package 的目录,其中包含一个空的 __init__.py 文件和一个名为 g.py 的文件仅包含:

class g:
pass

现在,当我运行 foo_module.py 时,我收到一条奇怪的错误消息:

Exception TypeError: “'NoneType' object is not callable” in ignored

但是,如果我将目录从 foo_package 重命名为 foo,并更改 foo_module.py 中的导入行,我不会没有任何错误。这是怎么回事?

在 WinXP 上运行 Python 2.6.4。

最佳答案

我认为您在 2.6.4 的代码中遇到了一个与程序结束时的清理相关的小错误。如果您运行 python -v,您可以准确地看到错误发生在清理的哪个点:

# cleanup[1] foo_package.g
Exception TypeError: "'NoneType' object is not callable" in ignored

Python 在程序结束时的清理期间设置对 None 的引用,看起来它对 g.shelf 的状态感到困惑。作为解决方法,您可以在 close 之后设置 g.shelf = None。我还建议在 Python 的错误跟踪器中打开一个错误!

关于python - 搁置(python)真的很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180946/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com