我正在尝试从另一个模块中导入一个类中的变量:
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
这可能吗?
ick*_*fay 11
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字典中的所有组件都是可见的.
| 归档时间: | 
 | 
| 查看次数: | 12944 次 | 
| 最近记录: |