Spyder 的 UMD 通常对我来说非常有用,但是在编写不想删除和重新加载的模块时,我会定期自己绊倒。我知道我可以通过Tools > Preferences > Console > Advanced settings > User Module Deleter来控制 UMD 。但我也希望能够在模块本身的代码中将我编写的某些模块标记为非 UMD 友好。
在一个完美的世界里,我会写一些类似的东西
assert_no_umd()
如果模块被 UMD 击中,这将引发异常。如果代码因模块的任何重新加载(无论是通过 UMD 还是其他方式)而跳闸,那就没问题了。
请注意,这与在 Python 中删除模块时调用的 Method不同,因为该问题是关于清理数据库连接,它只需要完成一次,因此可以使用atexit
.