[英]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
字典中都是可见的。
按照这两个步骤
从模块导入类
from Module import Class
将新变量分配给类中的现有变量
var1=Class.var1
var2=Class.var2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.