如果我想获取当前模块,例如重新加载它,我会这样做:
import sys
sys.modules[__name__]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点(例如不涉及__name__)?在这种情况下,更好意味着更惯用、更便携、更健壮,或者更多......我们通常在软件中希望的任何其他东西。
我使用 python 2,但 python 3 的答案无疑对其他人有用。
Mar*_*ers 10
没有sys.modules比您使用的更惯用的方法来获取当前模块对象了。
__name__由 Python 在导入时设置,本质上是:
module_object = import_py_file(import_name)
module_object.__name__ = import_name
sys.modules[import_name] = module_object
Run Code Online (Sandbox Code Playgroud)
所以该__name__参考正是您想要在此处使用的。
| 归档时间: |
|
| 查看次数: |
6560 次 |
| 最近记录: |