使用引用模块的变量

时间:2019-12-11 07:04:48

标签: python

在我的项目中,我定义了3个python文件:

  1. variables.py(其中包含一些变量,其值将由用户填充):

    VMD_name = "DEV56"
    VD_IP = "96.119.86.29"
    VD_username = "Administrator"
    VD_password = "nfV!Nads123Versa"
    
  2. helper.py(它具有一些有用的功能,并且需要variables.py中的变量,因此我已将其导入。

    import variables
    def execute_job():
        print variables.VMD_name 
    
  3. creation.py:需要访问helper.py函数和variables.py变量。由于variable.py已经导入到helper.py中,所以我认为我应该只导入helper.py,后者又将具有变量。

    import helper
    

但是以下两个语句均不起作用。请让我知道是否需要在creation.py中再次导入variable.py?这不是重复吗?

print helper.VMD_name
print helper.variables.VMD_name

2 个答案:

答案 0 :(得分:1)

您可以这样做(在creation.py中):

print helper.variables.VMD_name

这将起作用。

或者将您在helper.py中的导入方式更改为:

from variables import VMD_name

现在print helper.VMD_name将在creation.py中工作。

为什么这样工作?当您编写import variables时,模块variables中的常量将在helper.py中可用,但是您仍然需要在模块名称前添加才能访问它们(例如,在helper.py中应该写variables.VMD_name)。同样,在import helper中的creation.py之后,helper中的常量在creation中可用,但是同样,您应该在模块名前加上前缀。对于此常数,这意味着您应该将helper放在已经存在的variables.VMD_name之前。

另一方面,如果您使用from variables import VMD_name进行导入,则在助手中没有模块限定符的情况下常量将变为可用。

答案 1 :(得分:1)

您已在variables中导入了模块helper.py,但尚未导入variables模块的变量。所以你可以这样写:

import helper

print helper.variables.VMD_name

如果要使用helper.VMD_name,则应将变量导入helper.py

from variables import *