我的项目中有2个文件 -
**file1.py**
class A():
# Some code...
class B():
# Calling an API to get the data
另一个文件是 -
**file2.py**
from file1 import A
# Some code....
这里的问题是我只想导入类A,但是由于python的默认行为,它确实编译了在B类中编写的代码,这就是不需要调用API。
如何解决?
答案 0 :(得分:2)
将该代码拆分为单独的模块,或重构类B
,以便在导入时不调用API。
Python中不支持部分导入; import
机制为您提供的唯一选项是加载整个文件 。
这意味着你必须自己加载文本文件,然后解析出你想要的部分,然后编译并执行这些部分。这充满了问题,因为您必须自己检测任何依赖关系,以便做出明智的决定,以便能够和不能省略。
如果您真的想要走这条路,那么您将要查看ast
module以生成模块文件中包含的对象树。我使用对象上的行号来确定要编译的原始源文件的哪些部分(将树转换回字节码更难)。