如果类的实例将在Python中使用,是否必须导入该类?

2024-05-01 22:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用婴儿车。在我的代码中,PRAW中类的实例在模块中声明并返回。我是否必须导入主模块中的类或PRAW才能使用其子方法和变量


Tags: 模块实例方法代码声明praw中类婴儿车
1条回答
网友
1楼 · 发布于 2024-05-01 22:04:59

简单的回答是“不”

如果您有某个类的实例,那么该类的定义已经存在于Python进程中的某个地方—如果它是在一个模块中定义的(与使用type动态构造的相反),那么该模块是在其他地方导入的,并且可以在那里找到该类定义

Python中的“import”机制非常有效,因此如果您确实导入了一个尚未加载到当前进程中的模块,那么它的代码将实际运行。之后,对该模块的引用保存在中央注册表中,该注册表在sys.modules字典(即sys模块中的普通字典)中公开

每当发生新的模块导入,或者从已经存在的模块中进行名称导入时,Python所做的只是在导入发生的范围内分配一个变量,引用内存中已经存在的对象—因此,“已知”对象上的import只是一个赋值,与“=”符号执行的操作完全相同

但是当你有一个类的实例时,它已经包含了对它的类的引用,没有必要把它带到当前的命名空间中(该引用位于实例的__class__属性上

相关问题 更多 >