我用的是婴儿车。在我的代码中,PRAW中的一个类的实例在一个模块中声明并返回。我是否必须在我的主模块中导入类或PRAW才能使用它的子方法和变量?
发布于 2018-07-08 14:24:04
简短的回答是“不”。
如果您有某个类的实例,则该类的定义已经位于process的某个位置--如果它是在模块中定义的(与使用type动态构造的模块不同),则该模块是在其他地方导入的,并且可以在那里找到类定义。
Python中的“导入”机制非常有效,因此如果您确实导入了一个尚未加载到当前进程中的模块,那么它的代码实际上是运行的。然后,对该模块的引用保存在中央注册表中,该注册表在sys.modules字典(即sys模块中的普通字典)中公开。
每当发生新的模块导入,或者从已经存在的模块中导入名称时,Python所做的就是在导入发生的范围内分配一个变量,引用内存中已经存在的对象--因此,对“已经知道的”对象的import只是一个赋值,与"=“符号执行的任务完全相同。
但是,当您有一个类的实例时,它已经包含了对其类的引用,因此不需要将它带入当前的命名空间中。(该引用位于实例的__class__属性,顺便说一下)。
https://stackoverflow.com/questions/51230457
复制相似问题