Python 输出不';删除b/_uuinit_uuuu.py并使用不同的代码创建b.py后是否会发生更改?
我创建Python 输出不';删除b/_uuinit_uuuu.py并使用不同的代码创建b.py后是否会发生更改?,python,module,namespaces,filesystems,Python,Module,Namespaces,Filesystems,我创建a.py和b/\uuuu init\uuuuu.py: $ ls $ cat > a.py import b print "a" $ mkdir b $ cat > b/__init__.py print "b" 它按预期工作: $ python a.py b a 我删除b/\uuuuu init\uuuuuuuuuuuupy并在顶部文件夹中创建b.py: $ rm b/__init_
a.py
和b/\uuuu init\uuuuu.py
:
$ ls
$ cat > a.py
import b
print "a"
$ mkdir b
$ cat > b/__init__.py
print "b"
它按预期工作:
$ python a.py
b
a
我删除b/\uuuuu init\uuuuuuuuuuuupy
并在顶部文件夹中创建b.py
:
$ rm b/__init__.py
$ cat > b.py
print "new b"
$ python a.py
b
a
它不打印“新b”,而是打印“b”。为什么?您刚刚删除了
b/\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuupy
,但确实存在一个b/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu init.pyc
,并且在您的a.py
中仍在导入b(导入b
)。这可能会导致解释器假定已进行字节编译,因为它看到b/\uuu init\uuuuu.pyc
,并接受它,从而使其以相同的顺序打印
请注意,此命令仅删除了文件,而不是文件夹或.pyc
。这可能就是原因
尝试rm-rb
,您的代码应该可以正常工作
这确实是python解释器的预期行为。如果您不希望解释器对文件进行字节编译,您可以这样做,但对于性能问题不建议这样做,因为
你可以阅读更多关于
希望这有帮助 您刚刚删除了
b/\uuu init\uuuuuuuuuuuupy
,但确实有一个b/\uuuu init\uuuuuuuuuupy.pyc
并且在a.py
中您仍在导入b(导入b
)。这可能会导致解释器假定已进行字节编译,因为它看到b/\uuu init\uuuuu.pyc
,并接受它,从而使其以相同的顺序打印
请注意,此命令仅删除了文件,而不是文件夹或.pyc
。这可能就是原因
尝试rm-rb
,您的代码应该可以正常工作
这确实是python解释器的预期行为。如果您不希望解释器对文件进行字节编译,您可以这样做,但对于性能问题不建议这样做,因为
你可以阅读更多关于
希望这有帮助 你还有
.pyc
文件吗?你还有.pyc
文件吗?什么?如何关闭此功能?只需编辑问题,并提供更多信息和链接,以引导您。希望他们能帮上忙什么?如何关闭此功能?只需编辑问题,并提供更多信息和链接,以引导您。希望他们能有所帮助。