我发现了一些非常奇怪的东西。请参阅下面的短代码。
import os
class Logger(object):
def __init__(self):
self.pid = os.getpid()
print "os: %s." %os
def __del__(self):
print "os: %s." %os
def temp_test_path():
return "./[%d].log" %(os.getpid())
logger = Logger()
这旨在用于说明目的。os
它只是在类的构造和销毁上打印导入的模块(别管名称Logger
)。但是,当我运行它时,模块os
似乎“消失”到None
了类析构函数中。以下是输出。
os: <module 'os' from 'C:\Python27\lib\os.pyc'>.
os: None.
哪里说os: None.
是我的问题。它应该与第一条输出线相同。但是,回头看看上面的 python 代码,在函数temp_test_path()
. 如果我稍微改变这个函数的名称,比如说temp_test_pat()
,并保持所有其余代码完全相同,然后运行它,我会得到预期的输出(如下)。
os: <module 'os' from 'C:\Python27\lib\os.pyc'>.
os: <module 'os' from 'C:\Python27\lib\os.pyc'>.
除了这是一个错误,我找不到任何解释。你能?顺便说一句,我使用的是 Windows 7 64 位。