3
工作我想下面的简单代码sys.exitfunc不是蟒蛇
import sys
print("Starting Test Python Module");
def testmethod():
print("From test method")
sys.exitfunc = testmethod
print("Terminating Test Python Module");
运行,它打印
C:\Users\athakur\Softwares>python test.py
Starting Test Python Module
Terminating Test Python Module
我无法理解为什么它不打印“从试验方法“
使用的atexit工作正常,但
import atexit
print("Starting Test Python Module");
def testmethod():
print("From test method")
atexit.register(testmethod)
print("Terminating Test Python Module");
个
输出
C:\Users\athakur\Softwares>python test.py
Starting Test Python Module
Terminating Test Python Module
From test method
是的我正在使用'Python 3.4.3'。所以这会解释行为。但是不应该对python解释器抱怨吗? –
防止任意属性被添加到C中定义的*类型的对象*显然不适用于模块。应该是?有可能。 –
@AniketThakur不,你只是简单地将'exitfunc'属性设置为'sys'模块,这没有什么错。你可以做'sys.blahblahblah =',它可以工作(只要定义了一些东西:-),就像它适用于python中的大多数其他对象一样)。 –