繁体   English   中英

从另一个模块导入类变量

[英]Import a class variable from another module

我试图从另一个模块导入一个类中的变量:

import module.class.variable 
# ImportError: No module named class.variable

from module.class import variable 
# ImportError: No module named class

from module import class.variable
# SyntaxError: invalid syntax (the . is highlighted)

我可以执行以下操作,但我更愿意只导入我需要的一个变量。

from module import class as tmp
new_variable_name = tmp.variable
del tmp

这可能吗?

variable = __import__('module').class.variable 

你不能这样做 - import 语句只能从模块或子模块中引入元素 - 类属性虽然可以使用用于子模块访问的相同点语法进行寻址,但不能单独导入。

你可以做的是:

from mymodule import myclass
myvar = myclass.myvar
del myclass

无论哪种方式,无论何时使用from module import anything语法,都会读取和处理整个模块。例外是

from module.submodule import submodule

,其中,如果子模块本身不需要整个模块,则只处理子模块。

(因此,即使在我上面的解决方法中, mymodule也会被读取和执行 - 它无法在创建 import 语句的全局命名空间中访问,但它及其所有组件在sys.modules字典中都是可见的。

按照这两个步骤

  1. 从模块导入类

    from Module import Class

  2. 将新变量分配给类中的现有变量

    var1=Class.var1

    var2=Class.var2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM