如何在模块内部获取对模块的引用?
我怎么能在一个模块内部获取对这个模块的引用呢?还有,我怎么能获取到包含这个模块的包的引用呢?
8 个回答
17
如果你在某个模块里有一个类,那么这个类的 __module__
属性就是这个类所在模块的名字。因此,你可以通过 sys.modules[klass.__module__]
来访问这个模块。这个方法对函数也是适用的。
29
还有一种技巧,它不需要导入sys模块,可能在某些人看来,这种方法更简单:
current_module = __import__(__name__)
请注意,这里没有任何导入。Python每个模块只会导入一次。
262
在编程中,有时候我们需要将一些代码块放在一起,以便更好地组织和管理它们。这就像把书本的不同章节分开,方便我们查找和阅读。
在这个例子中,
import sys
current_module = sys.modules[__name__]
是一个代码块的占位符,表示这里应该有一段代码。通过使用这样的占位符,我们可以清楚地知道在这个位置应该插入什么内容,而不需要在一开始就写出所有的代码。
总之,使用代码块占位符可以帮助我们更好地安排和理解代码的结构,特别是当我们在处理复杂的程序时。