Python - 如何在一个模块中使用在其他模块中定义的变量

时间:2018-01-18 10:31:07

标签: python

我在使用selenium webdriver和python的自动化项目中遇到了一个概念。我有一个创建了一个包含Login脚本的模块。现在我想将Login.py中声明的变量用于其他测试用例。我在其他脚本中使用了导入模块功能。但是脚本因未找到变量错误而失败。

以下是该场景的简单表示:

1)Sample.py

class Integers():
    def Sum(self):
        a=6
        b=3
        print(a+b)
inst = Integers()
inst.Sum()

2)Test.py

import Sample
print(a)

当我运行Test.py时,它失败并显示错误:

  

NameError:未定义名称“a”。

有人可以帮帮我吗?我错过了什么吗?我刚开始使用Python并被困在这里

先谢谢。

2 个答案:

答案 0 :(得分:0)

你显然不仅仅是#34;刚开始使用Python"但实际上"刚开始编程"。在您的代码段中,a是函数中的局部变量。局部变量仅在函数执行期间存在,不能从函数本身之外的任何位置访问。这 - 变量范围的概念 - 实际上是编程中最基本的概念之一。

如果你想让函数中定义的值可用于其他代码,通常的解决方案是从函数中返回该变量:

# lib.py
def askusername():
    username = input("username ?")
    return username

然后:

# main.py
import lib
username = lib.askusername()

答案 1 :(得分:0)

如果a具有常量值,则应将其定义为Integers的静态成员:

class Integers:
    a = 1
    def Sum():
        print(Integers.a + 5)

然后,您可以在导入课程print(YourModule.Integers.a)后在'test.py'文件中写Integers